実際に私のアプリにはUserとAdminという2つのモデルが使用されていますが、devise gemを使用している間はすべての手順に従って処理しています。複数のモデルを使用中にDEVICEルーティングエラーが発生しました - RAILS 4.2.0
複数のログインが必要です。ユーザーがログインすると、それぞれのプロファイルにリダイレクトする必要があり、管理者がログインしたときに、それぞれのプロファイルにリダイレクトする必要があります。
私は間違いをどこにしているのか分かりません。
ホーム/ index.html.erb
<ul>
<li>User:<%= link_to 'User', new_user_session_path, target: "_blank" %></li>
<li>Admin:<%= link_to 'Admin', new_admin_session_path, target: "_blank" %></li>
</ul>
私はユーザーリンクに行くとき、それは私は以下の通りですエラーをルーティングできます。
そして私は、それは以下の通りですエラーをルーティング私を与え管理リンクにアクセスしてください。
routes.rbを
Rails.application.routes.draw do
root "home#index"
devise_for :users, controllers: {
sessions: 'users/sessions',
registrations: 'users/registrations'
}
devise_scope :user do
authenticated do
root to: 'aslani#index', as: 'authenticated_user_root'
end
unauthenticated do
root to: 'aslani#index', as: 'unauthenticated_user_root'
end
end
devise_for :admins, controllers: {
sessions: 'admins/sessions',
registrations: 'admins/registrations'
}
devise_scope :admin do
authenticated do
root to: 'yaseen#index', as: 'authenticated_admin_root'
end
unauthenticated do
root to: 'yaseen#index', as: 'unauthenticated_admin_root'
end
end
end
aslani/index.html.erb
<% if user_signed_in? %>
I am Aslani.
<%= link_to 'Log out', destroy_user_session_path, method: :delete %>
<% else %>
<%= link_to 'Log In', new_user_session_path %>
<%= link_to 'Sign Up', new_user_registration_path %>
<% end %>
index.html.erbコーラ/
<% if admin_signed_in? %>
I am Kola.
<%= link_to 'Log out', destroy_admin_session_path, method: :delete %>
<% else %>
<%= link_to 'Log In', new_admin_session_path %></li>
<%= link_to 'Sign Up', new_admin_registration_path %>
<% end %>
アプリ/コントローラ/ users/sessions_c ontroller.rb
class Users::SessionsController < Devise::SessionsController
def new
super
end
def create
self.resource = warden.authenticate!(auth_options)
set_flash_message(:notice, :signed_in) if is_navigational_format?
sign_in(resource_name, resource)
if !session[:return_to].blank?
redirect_to session[:return_to]
session[:return_to] = nil
else
respond_with resource, :location => after_sign_in_path_for(resource)
end
end
end
すべての提案が大歓迎です。
ありがとうございます。
返事をありがとう。新しいファイルusers/session_controller.rbにどのデータを入れますか? –
ユーザーセッションを作成するアクションが含まれています。確認してください。 – Sravan
コントローラにフォームまたはHTMLを入れないでください。 – Sravan