devise 설치
devise는 rails에서 login,logout 기능을 쉽게 구현할 수 있게 하는 gem입니다.
설치에는 아래의 기사가 매우 도움이 되었습니다.
htps : // 이 m / 시가 ぇ s / s ms / f4274088f20832252374
먼저 devise를 설치하여 사용 가능한 상태로 만듭니다.
Gemfile에
Gemfile에 추가
gem 'devise'
를 추가하고 저장합니다.
저장한 후 추가한 gem(devise)을 설치합니다.
설치 명령
$ bundle install
무단으로 devise가 설치되면 devise 구성 파일을 rails 앱에 설치합니다.
devise 구성 파일 설치 명령
$ rails generate devise:install
무사히 실행되면, 아래의 2개의 파일이 create 되는 것입니다.
설치 성공 시 메시지
Running via Spring preloader in process 74719
create config/initializers/devise.rb
create config/locales/devise.en.yml
===============================================================================
Some setup you must do manually if you haven't yet:
1. Ensure you have defined default url options in your environments files.
Here
is an example of default_url_options appropriate for a development environment
in config/environments/development.rb:
config.action_mailer.default_url_options = { host: 'localhost', port:3000 }
In production, :host should be set to the actual host of your application.
2. Ensure you have defined root_url to *something* in your config/routes.rb.
For example:
root to: "home#index"
3. Ensure you have flash messages in app/views/layouts/application.html.erb.
For example:
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
4. You can copy Devise views (for customization) to your app by running:
rails g devise:views
===============================================================================
이렇게 네 가지 메시지가 표시됩니다.
기본 URL을 지정하세요.
1. Ensure you have defined default url options in your environments files.
Here
is an example of default_url_options appropriate for a development environment
in config/environments/development.rb:
config.action_mailer.default_url_options = { host: 'localhost', port:3000 }
In production, :host should be set to the actual host of your application.
기본 URL(개발 환경의 경우 localhost:3000)을 설정해야 합니다.
예와 같이 추가합니다. 장소는 어디서나 괜찮을까.
config/environments/development.rb에 추가
config.action_mailer.default_url_options = { host: 'localhost', port:3000 }
2.root_url 지정
루트를 지정하세요.
2. Ensure you have defined root_url to *something* in your config/routes.rb.
For example:
root to: "home#index"
루트의 경로를 지정하십시오.
1번에 추가한 URL에 액세스했을 때 표시되는 페이지를 지정합니다.
또, devise내에서 root_url로 천이하는 타이밍(회원 등록 종료 후 등)이 있으므로, 그 때의 표시 페이지도 됩니다.
config/routes.rb에 추가
root_url遷移時に表示させたいページ(コントローラー名#アクション名)
3. flash 메시지 표시 위치 지정
flash 메시지를 표시하는 태그를 지정하세요.
3. Ensure you have flash messages in app/views/layouts/application.html.erb.
For example:
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
flash 메세지를 표시하기 위한 태그를 application.html.erb 안에 기술해 주세요라는 의미입니다.
body 태그 바로 아래에 있습니다.
application.html.erb에 추가
<body>
<p class="notice"><%= notice %></p>
<p class="alert"><%= alert %></p>
<%= yield %>
</body>
4.view 변경시 설정
view를 변경할 때 설정하는 방법
4. You can copy Devise views (for customization) to your app by running:
rails g devise:views
view를 사용자 정의하려면 위의 명령을 실행해야 합니다.
$ rails g devise:views
그러면
Running via Spring preloader in process 48740
invoke Devise::Generators::SharedViewsGenerator
create app/views/devise/shared
create app/views/devise/shared/_links.html.erb
invoke form_for
create app/views/devise/confirmations
create app/views/devise/confirmations/new.html.erb
create app/views/devise/passwords
create app/views/devise/passwords/edit.html.erb
create app/views/devise/passwords/new.html.erb
create app/views/devise/registrations
create app/views/devise/registrations/edit.html.erb
create app/views/devise/registrations/new.html.erb
create app/views/devise/sessions
create app/views/devise/sessions/new.html.erb
create app/views/devise/unlocks
create app/views/devise/unlocks/new.html.erb
invoke erb
create app/views/devise/mailer
create app/views/devise/mailer/confirmation_instructions.html.erb
create app/views/devise/mailer/email_changed.html.erb
create app/views/devise/mailer/password_change.html.erb
create app/views/devise/mailer/reset_password_instructions.html.erb
create app/views/devise/mailer/unlock_instructions.html.erb
가 표시되고 뷰를 변경하기 위한 파일이 생성됩니다.
우선 등록 화면만 보고 싶을 때는 실행하지 않아도 문제는 없습니다.
그런 다음 devise를 사용하는 User 모델을 만듭니다.
devise를 이용한 모델 만들기
$ rails g devise User
성공시 로그
Running via Spring preloader in process 61750
invoke active_record
create db/migrate/20180513111448_devise_create_users.rb
create app/models/user.rb
invoke test_unit
create test/models/user_test.rb
create test/fixtures/users.yml
insert app/models/user.rb
route devise_for :users
create 된 User 모델은
같아요.
필요한 모듈의 주석 처리를 제거해야하므로 이번에는
:omniauthable 이외의 주석 처리를 제거합니다.
그런 다음 마이그레이션 파일에서 추가한 모듈을 추가합니다.
이 근처의 create 된 파일의 코멘트 아웃을 괴롭히지 않았기 때문인지,
Signup시에 에러가 없어지지 않고, 꽤 시간이 걸려 버렸습니다.
그리고 DB에 반영시킵니다.
migrate
$ rails db:migrate
http://localhost:3000/users/sign_up
방문하여,
가 표시되고 Sign up 할 수 있으면 완성입니다.
Reference
이 문제에 관하여(devise 설치), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/yuyayyy/items/49faf22ff499d8f0bc15텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)