如何在ActiveAdmin中自定义默认登录页面?

use*_*584 20 forms authentication ruby-on-rails ruby-on-rails-3 activeadmin

问题

我正在尝试在ActiveAdmin中自定义默认登录页面,但我无法完成自定义.

我试过的

这个RailsCasts剧集的评论者建议将此文件复制到该文件app/views/active_admin/devise/sessions/new.html.erb并从那里进行自定义.但是,这样做似乎并没有取代默认的登录表单.

我也试过更换devise_for :admin_users, ActiveAdmin::Devise.configdevise_for :admin_users作为评论者指出,这似乎路由指向正确的地方,但我得到在这种情况下被认可了一堆有关没有ActiveAdmin变量的服务器错误.

我搜索过文档,但是我找不到特别是自定义登录表单的文档.

在ActiveAdmin中自定义登录表单的最佳方法是什么?

nio*_*ioq 17

使用Devise资源所在的默认ActiveAdmin配置admin_user,您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/设计

如果您还要尝试更改new.html.erb呈现Devise的布局,可以将布局文件从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

  • 在我的情况下,替换`app/views/active_admin/devise/sessions/new.html.erb`是正确的方法 (9认同)

Jea*_*eal 7

首先将所有设计视图复制到您的应用:

rails g devise:views admin_users
Run Code Online (Sandbox Code Playgroud)

config.scoped_views = trueconfig/initializers/devise.rb文件内部添加第二个就可以了.

这样您就不需要覆盖active_admin模板.