使用Ruby 2.1.1 Rails 4.1.4
您好,
我一直在试着用FormHelper看到的一个非常奇怪的问题。我只是尝试使用form_for
构建表单,并且在视图尝试呈现时遇到cannot call new for nil class
错误。通过回溯,我发现问题实际上在:
ActionView::Helpers::FormHelper#instantiate_builder:1145-1146
builder = options[:builder] || default_form_builder
builder.new(object_name, object, self, options)
default_form_builder
在ActionView::Helpers::FormHelper
def default_form_builder
builder = ActionView::Base.default_form_builder
builder.respond_to?(:constantize) ? builder.constantize : builder
end
我没有添加自定义表单生成器,只是尝试使用默认值。当我检查ActionView::Base.default_form_builder
是什么时,我会收到零。
让它适合我的两个解决方案是:
config.action_view.default_form_builder = ActionView::Helpers::FormBuilder
我现在正在使用2)但这些都不是必需的。
我到处都看,但发生的事情没有运气。谢谢你的帮助!
答案 0 :(得分:0)
Gemfile中有gem 'extlib'
和gem 'devise'
吗?
在gem 'extlib'
行下移动gem 'devise'
行
我不知道为什么,但它会起作用......