違いはなんですか?長所と短所?私にとっては少し混乱しています。
ありがとう。
関係が1-1の場合、外部キーを持つテーブルにbelongs_toを配置し、参照されるテーブルにhas_oneを配置します。
関係が1-nの場合、外部キーを持つテーブルにbelongs_toを配置し、参照されるテーブルにhas_manyを配置します
所属先は、外部キーを持つテーブルにあります。以下について:
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 である必要がある側です。
両方が必要になります。あなたは 1 つのクラスに 1 人で、もう 1 人は接続したいクラスに参加します。
例えば
Class User
has_one :profile
end
Class Profile
belongs_to :user
end
user.profile
リレーションを適切に設定すると、またはを使用してアクセスできるという利点がありますprofile.user
。