(초보자용)【Rails】Devise의 인스톨

(초보자용)【Rails】Devise의 인스톨

2022-10-06 last update

6 minutes reading 루비 Rails devise

소개



안녕하세요! Rails 학습중인 Yori-goreng (요리 고렌)입니다.
이 기사에서는 로그인 기능을 담당합니다.

보다 자세하게 알고 싶은 분은 이하의 참고 기사를 봐 주세요.
  • 참고 기사



  • 환경


  • 루비 2.6.3
  • rails 5.2.4.3
  • MacOS Catalina 버전 10.15.4

  • devise란?



    Ruby의 gem 중 하나로 devise를 사용하면 로그인 기능을 쉽게 구현할 수 있습니다.

    1. 【앱의 준비】



    1.1. 앱 만들기


    devise 에서 앱을 만듭니다.
    여기서는 devise_test라는 이름을 사용해 보겠습니다.
    rails new devise_test
    cd devise_test
    

    1.2. DB 생성


    rails db:create
    

    2. 【devise의 준비】



    2.1. gem 설치


    rails new アプリ名 에 devise gem을 추가합니다.
    gem 'devise'
    

    gem을 설치합니다.
    bundle install
    

    2.2. devise 관련 파일 만들기


    rails g devise:install
    

    다음과 같은 긴 문장이 터미널에 표시되면 성공입니다.
    ===============================================================================
    
    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
    
    ===============================================================================
    

    2.3. 모델링



    다음 명령을 사용하여 User 모델을 만듭니다.
    rails g devise user
    

    이 시점에서 마이그레이션을 수행하면 간단한 로그인 페이지가 완성됩니다.
    rails db:migrate
    
    rails s
    
    gemfile 다음에 http://localhost:3000/users/sign_in 로 로그인 페이지를 엽니다.



    2.4. before_action :authenticate_user!



    컨트롤러에 rails s를 입력하면 여기에서 수행되는 작업은 로그인한 사용자만 수행할 수 있습니다.
    예를 들어 Homes 컨트롤러를 만듭니다.
    ※컨트롤러의 명명 규칙에, homes와 같이 복수형으로 한다고 하는 것이 있습니다. 컨트롤러의 이름은 자유롭게 결정해도 문제없는 것 같습니다.
    rails g controller homes index
    

    만든 before_action :authenticate_user!homes_controller.rb를 추가합니다.

    app/controllers/home_controller.rb
    class HomesController < ApplicationController
      before_action :authenticate_user!
      def index
      end
    end
    

    이렇게 하면 index 액션에 의한 목록은 로그인한 사용자만 볼 수 있습니다.