Organization
has_manyusers
から までのモデルがありますmemberships
。一意性検証を設定する正しい方法は何ですか?
私は持っている:
class Organization < ActiveRecord::Base
has_many :memberships
end
class Membership < ActiveRecord::Base
belongs_to :user
belongs_to :organization
validates_presence_of :organization_id
validates_presence_of :user_id
validates_uniqueness_of :user_id, :scope => :organization_id
end
class User < ActiveRecord::Base
has_many :memberships
end
メンバーシップを作成しようとすると:
o = Organization.find(275)
u = User.find(505)
m = o.memberships.new(user_id: u.id)
m.save
私は得る:
Membership Exists (2.0ms) SELECT 1 AS one FROM "memberships" WHERE ("memberships"."user_id" = 501 AND "memberships"."organization_id" = 275) LIMIT 1
postgres コンソールで正確なクエリを実行しようとすると、0 行の結果が得られます。o.memberships
&u.memberships
も 0 の結果を示します。
私が考えることができる唯一のことは、一意性の検証memberships
が間違っているということですか? ここで何が問題なのですか?