Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails在字段中构建字段\u一次_Ruby On Rails_Nested Forms_Fields For - Fatal编程技术网

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| %>