2012-07-27 60 views
1

我们需要在控制器中使用FormBuilder.new创建表单构建器对象。下面是我们现在正在做的:如何在Rails 3.1.4中使用FormBuilder.new构建表单构建器对象

@f = ActionView::Helpers::FormBuilder.new(:invoice, @invoice, self, {}, proc {}) 

有一个错误说:

ActionView::Template::Error (undefined method `fields_for' "invoiceController.." 

我们相信@f是不是一个表单生成器对象,这就是为什么fields_for无法被识别。这个问题似乎与定义中的当前视图的自我参数有关。使用FormBuilder构建表单生成器对象的正确方法是什么?谢谢。

+0

通过将@f的定义放在相同的js.erb文件中解决了该问题。不知道为什么。 – user938363 2012-07-28 19:01:51

回答

0

你不会得到它与控制器的参数工作的原因是,你所说的“自我”的“模板”参数,这是唯一真正的模板......在模板中。在控制器中,self是控制器,而不是模板。