1
votes

Using Rails 5.0.0.beta1.

Installed Active Admin and Devise. Here is Gemfile contents:

# Backend
gem 'activeadmin', '~> 1.0.0.pre2'

# Authentication
# Master branch is added for Rails 5 support
# https://github.com/plataformatec/devise/pull/3714
gem "devise", :github => 'plataformatec/devise', :branch => 'master'

Followed instruction installation here.

rails g active_admin:install User
rake db:migrate
rake db:seed
rails server

When I'm trying to enter /admin, the following error appears:

Showing /usr/local/rvm/gems/[email protected]/gems/activeadmin-1.0.0.pre2/app/views/active_admin/devise/sessions/new.html.erb where line #10 raised:

Unable to find input class Input

Extracted source (around line #332): raise Formtastic::UnknownInputError, "Unable to find input #{$!.message}"

If we look at activeadmin-1.0.0.pre2/app/views/active_admin/devise/sessions/new.html.erb (line #10), nothing special is here:

f.input :password, label: t('active_admin.devise.password.title')

What's wrong? Maybe Formtastic classes are not autoloaded for some reason? I tried to update Formtastic to the latest version, but error still remains.

I understand that using beta is kind of risky, but I want to try this out.

2

2 Answers

4
votes

Figured it out. Here are the available options:

1) Probably the best option. Just use Rails 4.2.5 and wait for stable release of Rails 5 and according gem updates.

2) Create the file app/active_admin/inputs/input.rb with the following contents:

module ActiveAdmin
  module Inputs
    class Input < ::Formtastic::Inputs::StringInput
    end
  end
end

Related info is available here.

It solves accessing login page error, you can now successfully login and view dashboard. However, if you try to enter Users section for example, you get another error:

NoMethodError: undefined method flat_map for #<ActionController::Parameters> from /usr/local/rvm/gems/[email protected]/gems/activeadmin-1.0.0.pre2/lib/active_admin/view_helpers/fields_for.rb:20:in fields_for_params

This is because ActionController::Parameters in Rails 5 no longer extends ActiveSupport::HashWithIndifferentAccess which includes Enumerable (which contains method flat_map). But I think this is not the only one error you will struggle with.

3) This error, error mentioned in 2) and some other errors were fixed already on rails-5-spec branch in this pull request, so I switched to using it instead in Gemfile:

gem 'activeadmin', :github => 'activeadmin/activeadmin', :branch => 'rails-5-rspec'

Now the errors are gone.

Update: I choose 3rd option and it solves the problem on development server, but when I deployed application to production, error appeared again. I used the fix mentioned in 2) and now it's OK on production server too.

0
votes

css master branch of formtastic in your Gemfile

gem 'formtastic', git: '[email protected]:justinfrench/formtastic.git', :branch => 'master'

and do bundle update and restart server rails s -d