簡體   English   中英

ActiveAdmin :: Devise :: Sessions#new中的Formtastic :: UnknownInputError

[英]Formtastic::UnknownInputError in ActiveAdmin::Devise::Sessions#new

使用Rails 5.0.0.beta1。

安裝了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'

在這里按照說明安裝。

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

當我嘗試輸入/admin ,出現以下錯誤:

顯示/usr/local/rvm/gems/ruby-2.2.2@mysite.com/gems/activeadmin-1.0.0.pre2/app/views/active_admin/devise/sessions/new.html.erb ,在第10行出現:

找不到輸入類別輸入

提取的源(約#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更新到最新版本,但錯誤仍然存​​在。

我知道使用Beta有點冒險,但是我想嘗試一下。

弄清楚了。 以下是可用的選項:

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

相關信息可在此處獲得

它解決了訪問登錄頁面錯誤的問題,您現在可以成功登錄並查看儀表板。 但是,例如,如果您嘗試輸入“用戶”部分,則會出現另一個錯誤:

NoMethodError:來自/usr/local/rvm/gems/ruby-2.2.2@mysite.com/gems/activeadmin-1.0.0.pre2/lib/active_admin/view_helpers/fields_for.rb:20:in #<ActionController::Parameters>未定義方法flat_map /usr/local/rvm/gems/ruby-2.2.2@mysite.com/gems/activeadmin-1.0.0.pre2/lib/active_admin/view_helpers/fields_for.rb:20:in fields_for_params

這是因為Rails 5中的ActionController::Parameters不再擴展ActiveSupport::HashWithIndifferentAccess ,其中包括Enumerable (其中包含方法flat_map )。 但是我認為這不是您將要遇到的唯一錯誤。

3)此錯誤, 2)中提到的錯誤和其他一些錯誤已在此pull request的 rails-5-spec分支上修復,因此我改用Gemfile代替它:

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

現在錯誤消失了。

更新:我選擇了3rd選項,它解決了開發服務器上的問題,但是當我將應用程序部署到生產環境時,錯誤再次出現。 我使用了2)中提到的修復程序,現在在生產服務器上也可以。

Gemfile中的formtastic的CSS主分支

gem 'formtastic', git: 'git@github.com:justinfrench/formtastic.git', :branch => 'master'

bundle update並重新啟動服務器rails s -d

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM