1

テーブル(レッスン)を並べ替えて、件名(レッスンのテーブルのフィールド)でグループ化したいと思います。次に、それらを件名別に表示します。

だから私はヘッダーを持っているでしょう:件名

次に、その主題の各アイテムの画像、タイトル、説明が表示されます。次に、次の件名に移動し、以下同様に最大5つのアイテムに移動します。

例えば:

Math
[img]   [img]   [img]  ...
title   title   title  ...
desc    desc    desc   ...

Science
[img]   [img]   [img]  ...
title   title   title  ...
desc    desc    desc   ...

etc.....

コントローラーでは、どのように並べ替えてから分割しますか?

動的な量の被写体がある場合、これをビューにどのように表示しますか?

4

1 に答える 1

2

あなたのニーズの肉はによって満たされEnumerable#group_byます:

my_lessons.sort_by{ |lesson|
  # Or use ActiveRecord to sort your data
  lesson.title
}.group_by{ |lesson|
  lesson.subject
}.each do |subject,subj_lessons|
  puts "subject: #{subject}"
  subj_lessons.each do |lesson|
    puts lesson.title
  end
end

group_byから返すものはすべてハッシュのキーになりますが、値(subj_lessons)はそのグループに一致するすべてのアイテムの配列です。

実際のデータと出力のニーズに合わせてこれを変更します。

于 2012-04-16T00:53:55.587 に答える