使用するレイアウトやその他のものを上書きするために工夫するためにいくつかの小さな変更を加えているので、コントローラーを使用してカスタムルートを作成することにしました。これまでのところ、これをルートに追加しただけです:
devise_for :users, :controllers => {
:sessions => "sessions/user",
:registrations => "registrations/user"
}
これは、アクセス時にログインページをロードすること/users/sign_in
になっており、非常にうまく機能します。ユーザー入力とログインを検証するためにその URL に ajax 投稿しようとすると、次のエラーが発生します。NoMethodError (undefined method 'users_url' for #<Sessions::UserController:0x000000041bed98>):
コントローラーは基本的なものであり、devise ロジックを上書きするために何も変更されていません。
class Sessions::UserController < Devise::SessionsController
layout "login" # The only addition. Rest is handled by devise
end
私はこれをしばらくの間機能させていましたが、今日、別のモデル(管理者)にdeviseを使用することに決め、deviseコマンドrails generate devise Admin
を使用してそのファイルを生成しました。これにより、ユーザーにログインする作業コードが完全に台無しになりました。
何か案は?