我有2个班,A和B
class A
has_many :bs
accepts_nested_attributes_for :bs
end
class B
belongs_to :a
end
B有一个名为:group的字段,我想在表单中按组对b进行分组。
fields_for做2件事,1)围绕嵌套表单元素添加范围,2)迭代属性。我只想要第一部分,嵌套范围。有没有办法只对嵌套进行范围调整,以便我可以手动对嵌套对象进行分组?
在伪代码中我想要的是
<%= form_for a do |f| %>
<%= scope_for :gs do |g| %>
<% f.object.bs.group_by{|x| x.group} do |k,v| %>
<h3> Group <%= k %> </h3>
<% v.each do |b| %>
<%= g.text_field :field1
...
是否有Rails表单助手可以实现此目的?
答案 0 :(得分:1)
我知道没有内置帮助器可以让你这样做,但是可以使用fields_for
来破解解决方案。诀窍是为每个组分别设置fields_for
块:
<% f.object.bs.group_by(&:group).each do |k, v| %>
<%= f.fields_for "b_groups[]" do |g| %>
<!-- ... -->
<% end %>
<% end %>