Question

The Problem

I'm trying to customize the default login page in ActiveAdmin, but I'm having trouble getting the customizations to go through.

What I've tried

A commenter on this RailsCasts episode suggests copying this file to app/views/active_admin/devise/sessions/new.html.erb and customizing it from there. However, doing so does not seem to replace the default login form.

I also tried replacing devise_for :admin_users, ActiveAdmin::Devise.config with devise_for :admin_users as the commenter suggests, which seems to point the routes to the right place, but I get a bunch of server errors related to none of the ActiveAdmin variables being recognized in this context.

I've searched the docs, but I haven't been able to find documentation around customizing the login form in particular.

Question

What's the best way to go about customizing the login form in ActiveAdmin?

Was it helpful?

Solution

With the default ActiveAdmin config where the Devise resource is admin_user, your new.html.erb should go in app/views/admin_users/sessions/new.html.erb instead.

An easy way to copy out all the Devise templates is to do rails g devise:views admin_users, though it turns out ActiveAdmin comes with its own versions of these views: https://github.com/gregbell/active_admin/tree/master/app/views/active_admin/devise

If you're additionally trying to change the layout that Devise's new.html.erb is rendered with, you can copy the layout file out from ActiveAdmin into app/views/layouts/active_admin_logged_out.html.erb

The current layout file used for the login page is here:

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

OTHER TIPS

First copy all the devise views to your app:

rails g devise:views admin_users

Second add config.scoped_views = true inside the config/initializers/devise.rb file will do the trick.

In this way you don't need to override active_admin templates.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top