[前][次][番号順一覧][スレッド一覧]

rails:3352

From: Shinya Kawaji <kawaji@g...>
Date: Fri, 18 Dec 2009 12:09:17 +0900
Subject: [rails:3352] Re: 多対多の設計について

かわじ、です。


> あえて has_many :through ではなく、 has_and_belongs_to_many(habtm) を
> 使うのがミソという事ですよね?
> #固定観念で habtm で出来ることは has_many :through で全て出来ると思い
> 込んでました。

やり方の違いなだけであって、has_and_belongs_to_many を使わなくても
出来ます。

その場合、User と Entry の間を受け持つテーブル(たとえば EntriesUser)の
モデルを設定する必要があります。

has_and_belongs_to_many をつかえば、その間のテーブルのモデル設定を省略
することが出来ます(テーブル名を規約に合わせるなどの制限がありますが)。

間のテーブル(モデル)に特に意味がなければ、モデル設定を省略するほうが
見通しがよいと思いますが、そこは個々人の「やり方の違い」といえると思いま
す。


class User < ActiveRecord::Base
 has_many :entries, :through => :entries_users
end

class EntriesUser < ActiveRecord::Base
 belongs_to :user
 belongs_to :entry
end

class Entry < ActiveRecord::Base
 has_many :users, :through => :entries_users
 belongs_to :item
end


--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      3348 2009-12-17 07:40 [naopontan@g...      ] 多対多の設計について                    
      3349 2009-12-17 13:00 ┗[kawaji@g...         ]                                       
      3351 2009-12-18 02:50  ┗[naopontan@g...      ]                                     
->    3352 2009-12-18 04:09   ┗[kawaji@g...         ]