'devise'에 해당되는 글 1건

  1. 2013.04.27 Devise - 로그인



Devise 2.0은 Rails 3.1이상에서만 사용가능하다.

Devise를 레일즈에서 사용하려면 다음을 Gemfile에 넣으면된다.

  gem 'devise'



다음으로 bundle 커맨드 명령어로 인스톨해준다.

bundle install



인스톨이 완료되면 generator를 사용하여 앱에 설치한다.

rails generate devise:install


generator는 devise의 모든 환경설정 옵션들을 담고있는 initializer를 설치한다.

위치는 config/initializers/devise.rb이다.


그 다음으로 수동적으로 해야 할 일이 있다.

1. config/environments/development.rb에 디폴트 url을 설정해 준다.

  config.action_mailer.default_url_options = { :host => 'localhost:3000' }

  단, production 모드일 경우 :host가 실제 호스트가 되게 설정한다.


2. config/route.rb에 루트 url을 설정해 준다.

  예를 들어,

 root :to => "home#index"


3. app/views/layouts/application.html.erb에 flash 메세지를 표시하는 코드를 삽입한다.

  <p class="notice"><%= notice %></p>

  <p class="alert"><%= alert %></p>


4. Heroku에서 빌드 중이라면 config/application.rb에 다음을 설정한다.

  config.assets.initialize_on_precompile = false


5. 뷰를 커스터마이징 하고 싶다면 devise view를 복사한다.

  rails generate devise:views




다 했으면 devise model을 추가한다.

  rails generate devise MODEL

  MODEL은 실제 모델 클래스 이름으로 대체한다. 보통 User나 Admin으로 한다.



그 다음 데이터베이스 마이그레이션을 실행한다.

이는 config/route.rb에 devise 컨트롤러의 위치를 자동으로 설정해준다.

  rake db:migrate



이 시점에서 서버를 재실행해준다.



로그인을 원하는 컨트롤러에 다음 코드를 삽입한다. (클래스 선언 바로 아래에 선언해준다.)

  before_filter :authenticate_user!

  devise 모델명이 member라면 before_filter :authenticate_member!라고 해야한다.



해당 컨트롤러에 접속하면 다음과 같은 로그인 페이지를 볼 수 있다.




참고자료

1. devise - github


Posted by 하남각목