我有这三个类:
class Profile < ActiveRecord::Base
end
class Subject < ActiveRecord::Base
end
class ProfileSubject < ActiveRecord::Base
belongs_to :profile
belongs_to :subject
validates_uniqueness_of :subject_id, scope: :profile_id
end
当我用profilessubject的相关集合更新我的配置文件时,这个validates_uniqueness_of
工作得很好。但是,在创建操作上,它没有验证这种唯一性。我想,也许这是因为当我创建对象时,我还没有profile_id…我尝试为模型添加我自己的令牌,我可以用它来连接它们并通过它进行验证(在validates_uniqueness_of
的范围上使用它)。我现在知道了,它没有用,也不起作用。
你能帮我……
创建代码是标准的,像这样:
@profile = Profile.new(profile_params)
if @profile.save
# ...
else
# ...
end
使用说明:
validates_associated :subject, :profile
validates :subject, :profile, :presence => true
代替:
validates_uniqueness_of :subject_id, scope: :profile_id