Rails,fields_for,合并记录



我使用fields_for((不是为了嵌套表单,而是为了显示包含联接项的表单。我需要显示@seasons的数据,这些数据可以帮助我填充饮料。。。

<% @seasons do |season| %>  

<%= fields_for "drinks[]", season.drink do |f| %>
...
<%= f.select :optimized_region_id ... %>
...
<% end %>
<% end %>

它运行良好。然而,即使@seasons从来都不一样,一些season.drink也可能是相同的项目;"父";关系(同季。饮料.id(这对我来说不是问题。

我的问题是表格发送的是:

drinks"=>{
"e80e15c1-a5d4-4df4-80c6-2efa96e39793"=>{"optimized_status"=>"1", "optimized_nickname"=>"Alex"}, 
"b7501fe0-3a78-412e-88d5-e7643d761a98"=>{"optimized_status"=>"1", "optimized_nickname"=>"Paul"}
...
}

并且应该发送这个:

drinks"=>{
"e80e15c1-a5d4-4df4-80c6-2efa96e39793"=>{"optimized_status"=>"1", "optimized_nickname"=>"Alex"}, 
"e80e15c1-a5d4-4df4-80c6-2efa96e39793"=>{"optimized_status"=>"0", "optimized_nickname"=>"Alex"}, 
"b7501fe0-3a78-412e-88d5-e7643d761a98"=>{"optimized_status"=>"1", "optimized_nickname"=>"Paul"}
...
}

看起来Rails正在合并在发送表单时具有相同id的饮料。有没有可能避免这种情况,即使他们喝的是同一种饮料,也把所有的饮料都送出去?

我在[]:中找到了一个设置season_id的解决方法

<%= fields_for "drinks[#{season.id}]", record.drink do |f| %>

现在,我所有的饮料都是从表格上寄来的,即使是id相同的饮料也是如此。

相关内容

  • 没有找到相关文章

最新更新