simple_form_for无法识别f.input

时间:2012-04-23 08:57:20

标签: ruby-on-rails-3 simple-form

我正在使用simple_form gem。我有一个相当简单的场景。我有一个范围的路线,我正在尝试获得一个表格:

= 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

有关我出错的任何建议吗?

3 个答案:

答案 0 :(得分:3)

这是因为simple_form_for(以及for_form也因为simple_form_for只是对它的方法委托)接收选项哈希作为第二个参数。因此,您的@post被解释为选项,阻止SimpleForm更改表单构建器。

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

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

答案 1 :(得分:0)

解决这个问题的方法(虽然不是很理想,但是使用simple_fields。我会坚持这个,直到有更好的解决方案。

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

答案 2 :(得分:0)

安装Gem后重启服务器吗?