Ruby on rails Rails在字段中构建字段\u一次
在我的 但这只适用于“真正的”新行动。 那个问题有什么解决办法吗Ruby on rails Rails在字段中构建字段\u一次,ruby-on-rails,nested-forms,fields-for,Ruby On Rails,Nested Forms,Fields For,在我的 但这只适用于“真正的”新行动。 那个问题有什么解决办法吗 我使用的是“嵌套表单”gem。fields\u for允许您指定一个特定的对象来渲染字段,因此如果您希望您的nested\u字段部分包含单个新构建的nested2模型的嵌套字段,您可以在fields\u for中调用它自己,如下所示: @nested = Nested.new @nested.nested2.build f.object允许您访问表单生成器的对象,然后您可以使用它的关联方法(基于关联类型)在该点上构建新对象。我在
我使用的是“嵌套表单”gem。
fields\u for
允许您指定一个特定的对象来渲染字段,因此如果您希望您的nested\u字段
部分包含单个新构建的nested2
模型的嵌套字段,您可以在fields\u for
中调用它自己,如下所示:
@nested = Nested.new
@nested.nested2.build
f.object
允许您访问表单生成器的对象,然后您可以使用它的关联方法(基于关联类型)在该点上构建新对象。我在准确理解您的要求时遇到了一些困难。您是否正在尝试为您的对象创建一个表单,该表单中有一个新的嵌套的对象,该嵌套的对象也有一个新的嵌套的对象的嵌套表单2
?另外,您的字段中的:url=>{:action=>“new”}
用于调用有什么用?是的,您是对的,这只是一个输入错误。我现在改正了。该表单用于对象,内部嵌套了。只要我点击链接,就可以添加这个嵌套链接。例如:我有一张发票,上面有我想要的物品。为了将它们结合起来,我使用了一个单独的表,其中包含发票id、商品id以及商品数量。现在,当我想用新物品添加新发票时,我需要在单独的表中填写“计数”字段。希望现在我能更清楚地知道我想做什么?就我而言,这是一个多方面的联系。在这场争论中,我必须改变什么?我已经更新了我的答案以涵盖任何一种情况。然而,从你上面的描述中,我不太明白为什么你需要一个有很多联系的人(尽管我认为我仍然缺少一些关于你试图实现的东西)。这几乎就是我试图实现的上述情况。我有发票、物品和“发票和物品”。最后一个有“属于”协会,前两个都有“通过”协会。您更改的解决方案引发了以下异常:未定义的方法“invoice\u articles”,因此invoice
有多个:articles,通过::invoice\u articles
,Article
有多个:invoice,通过::invoice\u articles
?它们都有吗?它们都有很多:发票\u文章
?确切地说,这是我实际的关联模式。在invoice And article中,我还添加了“接受:invoice\u articles的嵌套属性”
<%=f.fields_for :nested, :url => { :action => "new" } do |build| %>
<%= render 'nested_fields', :f => build %>
<% end %>
@nested = Nested.new
@nested.nested2.build
# '_nested_fields.html.erb'
...
<%= f.fields_for :nested2, f.object.build_nested2 do |build| %>
<%= ... %>
<% end %>
<%= f.fields_for :nested2s, f.object.nested2s.build do |build| %>