[英]rails 2.3.8 validates_uniqueness_of with :scope not working
[英]Rails validates_uniqueness_of and scope - working only on update
我有以下3个课程:
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
当我用其关联的ProfileSubject集合更新我的个人资料时, validates_uniqueness_of
效果很好。 但是,在创建操作时-尚未验证此唯一性。 我想,也许这是因为当我创建对象时,我还没有profile_id ...并且我尝试为模型添加我自己的令牌,我可以用它们来连接它们并通过它进行validates_uniqueness_of
(在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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.