ruby-on-rails-3 - Rails 3 中 View 中的记录分组?

标签 ruby-on-rails-3 model group-by records

我的 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/

相关文章:

Azure App Insights 分析、无特定跟踪的操作

sql-server - 对 SQL 表进行排序以显示第一行和所有其他行的总和

Django 查询计数和更新

ruby-on-rails-3 - 从 Rails 应用程序中删除 heroku 存储库

Rails 3 推荐的 jQuery 可排序表插件

java - 内存数据网格中的细粒度与粗粒度域模型

php - DDD,PHP。领域对象和业务逻辑

ruby-on-rails - Gmaps4Rails 自定义信息窗口

mysql - Rails 应用程序(在本地计算机上)可以连接到远程数据库(在临时服务器上),而无需在本地计算机上设置 mysql 吗?

ruby-on-rails - Ruby on Rails : After search, 列表未显示所有数据