問題
ActiveAdminでデフォルトのログインページをカスタマイズしようとしていますが、カスタマイズを実行するのに問題があります。
私が試したこと
このRailsCastsエピソード のコメント投稿者は、 このファイル をapp/views/active_admin/devise/sessions/new.html.erb
にコピーし、そこからカスタマイズすることを提案しています。ただし、そうすることでデフォルトのログインフォームが置き換えられるようには見えません。
また、コメント投稿者が示唆しているように、devise_for :admin_users, ActiveAdmin::Devise.config
をdevise_for :admin_users
に置き換えてみました。これは、ルートを正しい場所に向けているようですが、これで認識されているActiveAdmin変数のいずれにも関連しないサーバーエラーが多数発生します。環境。
ドキュメントを検索しましたが、特にログインフォームのカスタマイズに関するドキュメントを見つけることができませんでした。
質問
ActiveAdminでログインフォームをカスタマイズするための最良の方法は何ですか?
Deviseリソースがadmin_user
であるデフォルトのActiveAdmin構成では、代わりにnew.html.erb
をapp/views/admin_users/sessions/new.html.erb
に入れる必要があります。
すべてのDeviseテンプレートをコピーする簡単な方法は、Rails g devise:views admin_users
を実行することですが、ActiveAdminにはこれらのビューの独自のバージョンが付属していることがわかります: https://github.com/gregbell/active_admin/tree/master/app/views/active_admin/devise
Deviseのnew.html.erb
がレンダリングされるレイアウトをさらに変更しようとしている場合は、レイアウトファイルをActiveAdminからapp/views/layouts/active_admin_logged_out.html.erb
にコピーできます。
ログインページに使用されている現在のレイアウトファイルは次のとおりです。
まず、すべてのデバイスビューをアプリにコピーします。
Rails g devise:views admin_users
次に、config.scoped_views = true
ファイル内にconfig/initializers/devise.rb
を追加するとうまくいきます。
このようにして、active_adminテンプレートをオーバーライドする必要はありません。