2
データベースに、レコードの日付に基づいて別のテーブルに出力したいレコードのコレクションがあります。Rails:関連するデータベースレコードのグループに基づいてテーブルを生成
だから私はすでに(FYI、HAMLに)次き:
%table
%tr
%th Name
%th Type
%th Total Hits
- for record in @records
%tr{ :class => cycle('odd','even') }
%td= record.name
%td= record.target_type
%td= record.outbound + record.detail + record.custom + record.dynamic
瞬間、それは同じテーブル内のすべての私のレコードが表示されます。 record.recorded_on
には私の記録の日付が入っています。上記のように、その日のすべてのレコードを含む毎日別のテーブルを生成したいと思います。
どうすればよいですか?
@records = Record.all.group_by { |record| record.recorded_on.to_date }
今@records
は、いくつかのネストされた配列が含まれています。それはDateTimeのであれば
@records = Record.all.group_by(&:recorded_on)
:recorded_on
を想定し
ありがとう:
今すぐあなたのHAMLテンプレートは次のようになります。しかし、好奇心の念から、「&:」は、@records = Record.all.group_by(&:recorded_on)の意味は何ですか? – neezer
&:Symbol#to_procと呼ばれるものです。これはブロックを持つメソッドへの呼び出しを短縮する方法です。だから、group_by(&:recorded_on)と同じ効果があります:group_by {| record | record.recorded_on} –
マックスが正しいです。 2番目の例で私はそこに書いていましたが、私は省略形のバージョンではサポートしていない結果をさらに処理したいので、手書きを使用する必要がありました。 –