web-dev-qa-db-ja.com

ActiveAdminでデフォルトのログインページをカスタマイズするにはどうすればよいですか?

問題

ActiveAdminでデフォルトのログインページをカスタマイズしようとしていますが、カスタマイズを実行するのに問題があります。

私が試したこと

このRailsCastsエピソード のコメント投稿者は、 このファイルapp/views/active_admin/devise/sessions/new.html.erbにコピーし、そこからカスタマイズすることを提案しています。ただし、そうすることでデフォルトのログインフォームが置き換えられるようには見えません。

また、コメント投稿者が示唆しているように、devise_for :admin_users, ActiveAdmin::Devise.configdevise_for :admin_usersに置き換えてみました。これは、ルートを正しい場所に向けているようですが、これで認識されているActiveAdmin変数のいずれにも関連しないサーバーエラーが多数発生します。環境。

ドキュメントを検索しましたが、特にログインフォームのカスタマイズに関するドキュメントを見つけることができませんでした。

質問

ActiveAdminでログインフォームをカスタマイズするための最良の方法は何ですか?

21
user456584

Deviseリソースがadmin_userであるデフォルトのActiveAdmin構成では、代わりにnew.html.erbapp/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にコピーできます。

ログインページに使用されている現在のレイアウトファイルは次のとおりです。

https://github.com/gregbell/active_admin/blob/master/app/views/layouts/active_admin_logged_out.html.erb

17
nioq

まず、すべてのデバイスビューをアプリにコピーします。

Rails g devise:views admin_users

次に、config.scoped_views = trueファイル内にconfig/initializers/devise.rbを追加するとうまくいきます。

このようにして、active_adminテンプレートをオーバーライドする必要はありません。

7
Jeans K. Real