生成的Formbuilder不适合rails 3.2.8 ajax调用中的render部分

时间:2012-08-23 04:26:03

标签: ruby-on-rails-3 ruby-on-rails-3.2 formbuilder

我们使用以下代码将formbuilder传递给new.js.erb中的render部分:

  <% @f = ActionView::Helpers::FormBuilder.new(:expense, @expense, self, {}, proc {} ) %> 
  var rpt = $("<%= escape_javascript(render 'expenses/expense_for', :f => @f) %>");

@f是为partial生成的formbuilder。错误是:

ActionView::Template::Error (undefined method `input' for #<ActionView::Helpers::FormBuilder:0x60c6828>):
    1: <%= f.input :expense_for, :label => "栏目: ", :collection => @expense_for  %>

部分_expense_for.html.erb是:

<%= f.input :expense_for, :label => "栏目: ", :collection => @expense_for  %>

如错误所示,上面部分的f formbuilder没有定义输入法。传入的formbuilder有什么问题?谢谢。

1 个答案:

答案 0 :(得分:1)

错误表明ActionView::Helpers::FormBuilder没有方法输入。据我所知,这是真的。 input是SimpleForm或Formtastic方法,请尝试使用f.select(您需要更改参数)。