RubbyonRails에서 트위터풍 웹 응용 프로그램 만들기 STEP3: 로그인, 로그아웃 기능 설치

8531 단어 Rails
세션 컨트롤러 생성
명령행
rails g controller Sessions new
라우팅 설정
config/routes.rb
resources :sessions, only[:new,:create,:destroy]
로그인 보기 만들기
app/vews/sessions/new.html.erb
  <div class="row">
  <div class="col-md-5 col-md-offset-2">
    <h3 class="page-header">ログイン画面</h3>
    <%= form_for(:session,url: sessions_path) do |f| %>
    <div class="form-group">
    <p><%= f.label :email , "メールアドレス"%></p>
    </div>
    <p><%= f.email_field :email %></p>
    <p><%= f.label :password,"パスワード" %></p>
    <p><%= f.password_field :password %></p>
    <p><%= f.submit "ログインする", class: "btn btn-primary" %></p>
    <% end %>
  </div>
</div>
로그인에 필요한 도우미 읽기
app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
  include SessionsHelper
end
로그인 추가 방법
app/helper/sessions_helper.rb
module SessionsHelper

  def log_in(user)
    session[:user_id] = user.id
  end

  def current_user
    if session[:user_id]
      @current_user ||= User.find_by(id: session[:user_id])
    end
  end

  def logged_in?
    !current_user.nil?
  end

  def log_out
    session.delete(:user_id)
    @current_user = nil
  end
end
end
로그인 머리글 (탐색 모음), 링크 추가 로그아웃
app/vews/shared/_header.html.erb
    <ul class="nav navbar-nav navbar-right">
      <% if logged_in? %>
      <li><%= link_to @current_user.email + "さんでログイン中"%></li>
      <li><%= link_to "ログアウト",session_path(@user),method: :delete %></li>
      <% else %>
      <li><%= link_to "ログイン",new_session_path %></li>
       <li><%= link_to "新規登録",new_user_path %></li>
       <% end %>
    </ul>
사용자가 로그인한 후 로그인 중
app/controllers/users_controller.rb
  def create
    @user = User.new(user_params)
    @user.save
    log_in @user
    redirect_to @user
  end
서버를 시작하고 브라우저에서 확인



이번에는 여기까지.
다음은 투고 기능을 실시할 것이다이쪽

좋은 웹페이지 즐겨찾기