2

違いはなんですか?長所と短所?私にとっては少し混乱しています。

ありがとう。

4

3 に答える 3

6

関係が1-1の場合、外部キーを持つテーブルにbelongs_toを配置し、参照されるテーブルにhas_oneを配置します。

関係が1-nの場合、外部キーを持つテーブルにbelongs_toを配置し、参照されるテーブルにhas_manyを配置します

于 2012-05-07T12:40:00.200 に答える
6

所属先は、外部キーを持つテーブルにあります。以下について:

class User < ActiveRecord::Base
  has_one :profile
end
class Profile < ActiveRecord::Base
  belongs_to :user
end

プロファイル テーブルには、users テーブルのレコードを参照するための user_id フィールドが必要です。

どれが属するべきか、どれが持っているべきかを知ることは、多くの人が苦労していることです。一般に、has_one が has_many になる可能性がある場合、それは has_one である必要がある側です。

于 2012-05-07T12:44:03.177 に答える
4

両方が必要になります。あなたは 1 つのクラスに 1 人で、もう 1 人は接続したいクラスに参加します。

例えば

Class User 
  has_one :profile
end

Class Profile
  belongs_to :user
end

user.profileリレーションを適切に設定すると、またはを使用してアクセスできるという利点がありますprofile.user

于 2012-05-07T12:43:28.567 に答える