रेल्स 3.2 का उपयोग करना और 3.2.3 का उपयोग करना। मैं अपने होम पेज को " होम # इंडेक्स " (कंट्रोलर # एक्शन) सेटअप करने का प्रबंधन करता हूं क्योंकि लॉगिन पेज निम्नलिखित बदलाव करता है।
# 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 जोड़े गए तरीके resource_name, संसाधन और devise_mapping से ऐप / सिपर्स / एप्लिकेशन_हेलपर.बीआर :
def resource_name
:user
end
def resource
@resource ||= User.new
end
def devise_mapping
@devise_mapping ||= Devise.mappings[:user]
end
# 3 एक कस्टम सत्र नियंत्रक ऐप / नियंत्रक / उपयोगकर्ता / session_controller.rb बनाया गया :
class Users::SessionsController < Devise::SessionsController
protected
def auth_options
{ scope: resource_name, recall: 'home#index' }
end
end
# 4 सत्र मार्गों को छोड़ें और कस्टम सत्र नियंत्रक को config / path.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