何かしらの投稿機能、例えばTwitterのような新しい投稿が先に表示される機能を実装していたところ、考え方が凝り固まっていた部分があったので備忘として記載します。
私がやりそうになったのは以下です。
ハッシュを含む配列に対し、受け取ったビューファイル側で降順ソートして表示しようとした
しかしよく考えると、これは保守性が高くないことに気付きました。
表示は表示という機能に集中することなど、各機能はそれぞれに特化すべきです。メソッドも同様です。
そのため、受け渡す際にソートした状態で受け渡す
、これを行う必要がありました。
以下は例です。
Itemテーブルに存在するデータを@itemsに格納する際、「.order('created_at DESC')」というオプションを追加しました。
controller
def index
@items = Item.includes(:user).order('created_at DESC')
end
こうすることで、ビューファイルの表示、という機能に手を加えることなく制御することができました。