gpt4 book ai didi

ruby-on-rails-3 - 在 Rails 3 的 View 中对记录进行分组?

转载 作者:行者123 更新时间:2023-12-04 18:22:40 27 4
gpt4 key购买 nike

我的 Rails 3 应用程序中有以下代码:

显示 View (来自另一个名为 animal.rb 的模型)

 <% @animal.labs.each do |lab| %>
<li>
<%= lab.TestDone.strftime("%d %b. %Y") %>
<h5><%= lab.TestType %></h5>
<h6><%= lab.TestLower %></h6>
<b><%= lab.TestResult %></b>
<h6><%= lab.TestUpper %></h6>
</li>
<% end %>

实验室模型
belongs_to :animal
default_scope :order => "TestDone DESC", :group => "TestDone"

上面的代码成功地将所有结果按日期分组。但是,它只显示日期之后每个值的第一个。

例如,如果输出最初(分组之前)是这样的:
<li>
26 April 2012
<h5>Glucose</h5>
<h6>1.0</h6>
<b>1.8</b>
<h6>2.0</h6>
</li>

<li>
26 April 2012
<h5>WBC</h5>
<h6>1.1</h6>
<b>2.8</b>
<h6>3.0</h6>
</li>

<li>
26 April 2012
<h5>ABC</h5>
<h6>1.0</h6>
<b>1.6</b>
<h6>2.0</h6>
</li>

那么它会在分组后输出以下内容:
<li>
26 April 2012
<h5>Glucose</h5>
<h6>1.0</h6>
<b>1.8</b>
<h6>2.0</h6>
</li>

产生这样的东西的正确方法是什么:
<li>26 April 2012</li>
<li>
<h5>Glucose</h5>
<h6>1.0</h6>
<b>1.8</b>
<h6>2.0</h6>
</li>
<li>
<h5>WBC</h5>
<h6>1.1</h6>
<b>2.8</b>
<h6>3.0</h6>
</li>
<li>
<h5>ABC</h5>
<h6>1.0</h6>
<b>1.6</b>
<h6>2.0</h6>
</li>

所以我有一个日期标题,然后下面列出了该日期的每条记录?

最佳答案

更简单的方法是使用 group_by像这样:

 <% @animal.labs.group_by{|l| l.TestDone.strftime("%d %b. %Y") }.each do |testdate,labs| %>
<li><%= testdate %></li>
<% labs.each do |lab| %>
<li>
<h5><%= lab.TestType %></h5>
<h6><%= lab.TestLower %></h6>
<b><%= lab.TestResult %></b>
<h6><%= lab.TestUpper %></h6>
</li>
<% end %>
<% end %>

http://api.rubyonrails.org/classes/Enumerable.html#method-i-group_by

关于ruby-on-rails-3 - 在 Rails 3 的 View 中对记录进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10333411/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com