今日たまたまRailsのリファレンスを眺めていて見つけたのですが。
下記のようなBlogモデルとEntryモデルがあるとします。
class Blog < ActiveRecord::Base has_many :entries end class Entry < ActiveRecord::Base belongs_to :blog end
Blogモデルのインスタンスである@blogに関連したentryのid配列を取得したい場合は、今までこんな感じでやってました。
@blog.entries.find(:all, :select => "entries.id").map(&:id)
これでもいいですが、has_manyで提供されるメソッドを使うとこんなにスマートにかけます。
@blog.entry_ids
Rails2.0くらいから追加されたようですね。知らなかったなー。