ほんじゃらねっと

ダイエット中プログラマのブログ

Railsであるモデルから関連モデルのリストを取り出す時にソート

UserモデルとArticleモデルがあり、1対多関連(has_many - belongs_to)になっている時に
User毎のArticle一覧を表示する場合、例えば日付の新しいArticleから順に表示したい場合

<% for article in @user.articles.find(:all, :order => 'updated_on desc') %>
<%=h article.title %>
<% end %>

これでうまくいった。


検索の場合はこうか。

<% for article in @user.articles.find(:all,
:conditions => ['title like ?', '%らら%']) %>
<%=h article.title %>
<% end %>

ちゃんと@user.articlesの範囲内でソートしたり検索したりしてくれるみたい。
便利だー。


ここでfindメソッドの使い方を発見。
http://jp.rubyist.net/magazine/?0006-RubyOnRails