続・has_many 〜, :through => 〜

1つ前の記事で、has_many 〜, :through =>SUGEEEEという記事を書いたけど、
正直あれだけでは、どこがすごいのか全然伝わらなかったと思い、追記。


サンプルモデル
entry(1) -- (N)categorizations(N) -- (1)category (Railsレシピより


今まで僕が経験したO/Rマッピングツールでは、entryから、関連したcategoryを参照するとき

for(Categorization categorization : entry.categorizations){
 categorization.category.ごにょごにょ
}

といった感じで書く必要があった


だけど、ActiveRecordなら

entry.categories.each{|category| category.ごにょごにょ}

でいけてしまう。


データのインサート時には(関連付け)
entry.categories << category


関係テーブルの削除は
entry.categories.clear
でOK


実際そこまで変わるかー? と言われれば、正直作業効率が上がるとかそういう話ではないと思う・・・。


要するに、かっこいいかどうか の違いなんですけどね!