2011年7月7日木曜日

Rails3のhas_manyで他のnamespaceのモデルと連結させる方法

(過去の)あたしってほんと、バカ

プログラマーて、そう思う事ってよくあるよね。後でいい方法が思い浮かんだり、むしろ、過去の自分が何を考えていたのか分からなかったりとか。アハハ!

余談はさておき(余談からはじまっとる...)

:class_name, :foreign_key, :source

これらhas_manyのオプションをうまく利用してあげれば、うまくassociationを組むことができます。例えばこんな感じ

class Admin::Post < ActiveRecord::Base
  has_many :post_products, :class_name => 'PostProducts', :foreign_key => :admin_post_id
  has_many :products, :through => :post_products, :class_name => 'Product'
end

上の例は、管理者が投稿する機能に、関連商品を結びつけるためのアソシエーション。中間テーブルを使ってるパターンです。

まぁ、グレーゾーンなモデルはネームスペース付けずに作っておくべきかも

public/privateとか、どっちかじゃなくて、どっちも所属するようなモデルはネームスペース付けとかない方が、後々いいなと思いました。

アジャイルとはいえ、DB設計って大事!以上!

0 件のコメント: