Rails:多次使用form_for(DOM ID)

我想在同一页面中为同一个模型多次使用form_for帮助器。 但是输入字段使用相同的ID属性(在HTML中),因此单击另一个表单中字段的标签将在第一个表单中选择相同的输入。

是否有解决方案除了通过以下方式手动设置所有属性:for =>“title _#{item.id}”和:id =>“title _#{item.id}”?

使用Rails 3.0.9

您可以使用:namespace => 'some_unique_prefix'选项。 与:index相反,这不会更改name属性中使用的值。

也可以使用数组,例如,当您有嵌套的表单或碰巧有一些共同字段的不同表单时:namespace => [@product.id, tag.id]:namespace => [:product, @product.id]

我自己找到了答案,可以将一个:index选项传递给form_for。 该字符串将用于id和属性:

 <%= form_for @person, :index => @person.id do |f| %> <%= f.label :name %> <%= f.text_field :name %> <%= f.submit %> <% end %> 

将解析

 

请注意,它也会更改输入的名称。

我相信你可以添加这个参数:

 :html => { :id => 'id_i_want' }