2015-12-30 31 views
1

使用Rails 5.0.0.beta1。ActiveAdmin :: Devise :: Sessions#中的Formtastic :: UnknownInputError#new

已安装Active Admin和Devise。这里的Gemfile内容:

# 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' 

遵循指令安装here

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

当我试图进入/admin,出现以下错误:

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}"

如果我们看一下activeadmin-1.0.0.pre2/app/views/active_admin/devise/sessions/new.html.erb(第10行),没有什么特别的是在这里:

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

怎么了?由于某些原因,Formtastic类可能不会自动加载?我试图将Formtastic更新到最新版本,但错误仍然存​​在。

我明白,使用测试版是有点冒险的,但我想试试这个。

+0

这可能有助于不能确定。 https://github.com/Prelang/feedback/issues/14#issuecomment-63241267 – Abhinay

回答

3

想通了。以下是可用选项:

1)可能是最好的选择。只需使用Rails 4.2.5并等待Rails 5的稳定版本并根据gem更新。

2)使用以下内容创建文件app/active_admin/inputs/input.rb

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

相关信息,请here

它解决了访问登录页面错误,现在可以成功登录和查看仪表板。但是,如果您尝试输入例如用户部分,你会得到另一个错误:

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

这是因为ActionController::Parameters Rails中5不再延长ActiveSupport::HashWithIndifferentAccess包括Enumerable(其中包含方法flat_map)。 但我认为这不是唯一的错误,你会与之奋斗。

3)这个错误,在2)提到的错误和其他一些错误是在this pull request已经固定在rails-5-spec分支,所以我转而使用它,而不是在Gemfile中:

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

现在错误消失了。

更新:我选择选项,它解决了开发服务器上的问题,但是当我部署应用到生产,错误又出现了。我使用了在2)中提到的修复程序,现在在生产服务器上也可以。的formtastic在你的Gemfile

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

0

CSS主分支和做bundle update并重新启动服务器rails s -d

相关问题