私は3アプリケーションの私のRailsで次のコードがあります(animal.rbと呼ばれる別のモデルから)Rails 3のビュー内のレコードをグループ化しますか?
を表示するビュー
<% @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
@dannymcc Group_byはまったく同じものだけをグループ化するため、TestDoneにはおそらく各ラボごとに異なる時間、分、秒が含まれています。グループ化操作の前にTestDoneを前処理するために、group_byの完全ブロック構文を使用する答えを編集しました。 – Unixmonkey