devise 설치

7398 단어 루비Railsdevise
Facebook 로그인을 구현하려면 devise라는 gem을 사용합니다.
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 지정

  • 기본 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 할 수 있으면 완성입니다.

    좋은 웹페이지 즐겨찾기