我有以下导轨型号:
class Release < ActiveRecord::Base has_many :release_questionnaires,:dependent => :destroy accepts_nested_attributes_for :release_questionnaires ... end class class ReleaseQuestionnaire < ActiveRecord::Base belongs_to :release belongs_to :milestone ... end class
在我的视图代码中,我有以下形式.
<% form_for @release,... do |f| %> ... <table class="questionnaires"> <% f.fields_for :release_questionnaires,@release.release_questionnaires.sort_by{|ra| ra.questionnaire.name} do |builder| %> ... <% end %> </table> <% end %>
这有效,并允许我根据需要查看和编辑问卷.但是,我还有一个额外的要求是将调查问卷分解到他们自己的表中,这些表按照与之关联的里程碑分组,而不是在单个表中.看起来好像group_by方法是为了实现这一点而设计的,但我无法让它在标签内按需工作.
可能是因为我是初学者,我遗漏了一些明显的东西……任何帮助都会受到赞赏.
解决方法
这是你在找什么?
<% form_for @release,... do |f| %> ... <% @release.release_questionnaires.group_by {|rq| rq.milestone }.each do |milestone,questionnaires_group| %> <table class="questionnaires"> <% f.fields_for :release_questionnaires,questionnaires_group.sort_by{|rq| rq.name} do |builder| %> ... <% end %> </table> <% end %> <% end %>