Ruby on rails 3 简单的"表格"""表示不';不能识别f输入

Ruby on rails 3 简单的"表格"""表示不';不能识别f输入,ruby-on-rails-3,simple-form,Ruby On Rails 3,Simple Form,我用的是简单的宝石。我有一个相当简单的场景。我有一个作用域路由,我正在尝试获取一个表单: = simple_form_for(@scope, @post) do |f| = f.input :comment 简化路由文件: scope ':scope' do resources :posts end 但是我得到了一个错误: undefined method `input' for #<ActionView::Helpers::FormBuilder:0x7f1b1eef1cb8

我用的是简单的宝石。我有一个相当简单的场景。我有一个作用域路由,我正在尝试获取一个表单:

= simple_form_for(@scope, @post) do |f|
  = f.input :comment
简化路由文件:

scope ':scope' do
  resources :posts
end
但是我得到了一个错误:

undefined method `input' for #<ActionView::Helpers::FormBuilder:0x7f1b1eef1cb8> 
#的未定义方法“输入” 我使用的是rails 3.0.12和simple_form 1.4.2

有什么建议我哪里出了问题吗?

解决这个问题的一种方法是(尽管不理想的方法是使用简单的字段)。在找到更好的解决方案之前,我会坚持使用这个方法

= form_for(@scope, @post) do |f|
  =f.simple_fields_for :posts do |ff|
    =ff.input :comment
解决这个问题的一种方法(虽然不是很理想)是使用简单的_字段。我将坚持使用这个方法,直到有更好的解决方案为止

= form_for(@scope, @post) do |f|
  =f.simple_fields_for :posts do |ff|
    =ff.input :comment

安装Gem后是否重新启动服务器?

安装Gem后是否重新启动服务器?

之所以发生这种情况,是因为
的simple\u form\u for
(而
的simple\u form\u for
也是因为
的simple\u form\u仅仅是对它的方法委托)接收选项哈希作为第二个参数。因此您的
@post
将被解释为选项,从而阻止SimpleForm更改表单生成器

使用作用域资源的正确方法是使用如下数组:

= simple_form_for([@scope, @post]) do |f|
  = f.input :comment

这是因为
simple\u form\u for
(而
for\u form
也因为
simple\u form\u for
只是一个方法委托给它)接收到选项散列作为第二个参数。因此您的
@post
被解释为选项,阻止SimpleForm更改表单生成器

使用作用域资源的正确方法是使用如下数组:

= simple_form_for([@scope, @post]) do |f|
  = f.input :comment

是的。如果没有,那么错误将围绕简单表单,而不是输入。如果没有,那么错误将围绕简单表单,而不是输入