ruby-on-rails - 将group_by与fields_for和accepts_nested_attributes_for一起使用

标签 ruby-on-rails

我有以下Rails模型:

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

关于ruby-on-rails - 将group_by与fields_for和accepts_nested_attributes_for一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2625894/

相关文章:

ruby-on-rails - 模型中关系的事件记录Where子句

ruby-on-rails - 将 rails_admin 与 rails_api 一起使用

ruby-on-rails - 未定义的方法 `each' 为零 :NilClass. .. 为什么?

ruby-on-rails - Rails actionmailer,gmail 有效,office 365 无效。

ruby-on-rails - Rails 外部 API 测试

ruby-on-rails - 运行 'rake assets:precompile' 产生错误 : '` @application. css' is not allowed as an instance variable name'

ruby-on-rails - 获取 URL 的评论 - Koala Graph API

ruby-on-rails - Rails and Devise - 访问 session 数据

ruby-on-rails - Rails 3 Assets 和 CSS 相对 URL

ruby-on-rails - 您如何从需要凭据 (SSL) 的网站上抓取数据?