我在我的Rails下面的代码3应用:在Rails 3中的视图中对记录进行分组?
显示视图(从另一个模型称为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>
所以我有个约会标题,然后每下面列出了该日期的记录?
这看起来方式比任何到目前为止,我已经试过更优雅。有一件事,测试实际上被称为TestDone。我已经尝试了所有的工作,但它不会加载该值。任何提示? – dannymcc 2012-04-26 17:42:52
@dannymcc Group_by只会对完全相同的事物进行分组,您的TestDone可能会为每个实验室包含不同的小时,分钟和秒钟。我编辑了我的答案,使用group_by的完整块语法在分组操作之前预处理TestDone。 – Unixmonkey 2012-04-26 17:53:22