続・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
実際そこまで変わるかー? と言われれば、正直作業効率が上がるとかそういう話ではないと思う・・・。
要するに、かっこいいかどうか の違いなんですけどね!