rails 3.2 와 devise 3.2.3을 사용 하여 로그인 페이지로 내 홈페이지 " home # index "(controller # action)를 설정하여 다음과 같이 변경합니다.
# 1 홈페이지에 로그인 양식 추가 :
<%= simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %>
<%= f.input :email %>
<%= f.input :password %>
<%= f.button :submit %>
<% end %>
# 2 app / heldpers / application_helper.rb에 resource_name, resource 및 devise_mapping 메소드 추가 :
def resource_name
:user
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end
# 3 커스텀 세션 컨트롤러 app / controllers / users / sessions_controller.rb 생성 :
class Users::SessionsController < Devise::SessionsController
protected
def auth_options
{ scope: resource_name, recall: 'home#index' }
end
end
# 4 세션 경로를 건너 뛰고 config / routes.rb 에서 사용자 지정 세션 컨트롤러를 설정합니다 .
devise_for :users, path: 'auth', skip: [:sessions],
controllers: {
sessions: 'users/sessions'
}
as :user do
get 'auth/sign_in' => 'home#index', as: :new_user_session
post 'auth/sign_in' => 'users/sessions#create', as: :user_session
delete 'auth/sign_out' => 'users/sessions#destroy', as: :destroy_user_session
end