0

次の例では、Chlidクラスにbelongs_to:motherとhas_one:motherを使用することの違いは何でしょうか。私はこれに関するRailsのドキュメントを読んでいますが、それを読むことに伴うセマンティクスとは別に、どちらがどのように違いを生むのかわかりません。

私の知る限り、さまざまなアソシエーションによって各クラスにメソッドが追加されていますが、アソシエーションごとにメソッドとその機能を一覧表示するドキュメントを見つけることができませんでした。

class BiologicalMother < ActiveRecord::Base
  has_many :children
end

class Child < ActiveRecord::Base
  belongs_to :biological_mother
end
4

2 に答える 2

0

この時点では、それはほとんど純粋なセマンティクスです。mongoidでは、外部キーが。を使用してモデルに格納されていることを知っているbelongs_toので、ActiveRecordでもそのようなものがある可能性があります。

于 2012-05-13T11:33:28.183 に答える
0

あなたの場合、これhas_many belongs_toは意味的にだけでなく、レールがどのように機能するかという点で正しいアプローチです。外部キーは常にbelongs_toアソシエーションの一部に保存されます。有効なシナリオは、モデルをhas_one持っているようなものです。Purchasehas_one BillingAddress

例:

class Purchase
   has_one :billing_address
end

class BillingAddress
   belongs_to :purchase #this holds the foreign key - purchase_id
end

あなたの場合、その部分は常に外部キーを保持しているため、関連付けの一方の側has_manyともう一方の側で使用することはできません。has_onebelongs_to

これがあなたのために働くかどうか私に知らせてください。

于 2012-05-13T12:10:08.567 に答える