Ruby on rails Rails 3使用条件验证唯一性
我有一个带有布尔字段默认值的模型帖子。帖子属于用户。我想确保用户只有一个默认(例如设置为true)帖子。我试过这个:Ruby on rails Rails 3使用条件验证唯一性,ruby-on-rails,validation,unique,Ruby On Rails,Validation,Unique,我有一个带有布尔字段默认值的模型帖子。帖子属于用户。我想确保用户只有一个默认(例如设置为true)帖子。我试过这个: validates :default, uniqueness: { scope: :user_id }, if: :default? 但它允许创建两篇带有默认值:true,用户id:1 你能帮帮我吗 另外,这种构造非常适用于验证:名称、唯一性:{scope::user_id},除非::default?布尔值可能有问题吗?尝试这种验证: validate :only_one_de
validates :default, uniqueness: { scope: :user_id }, if: :default?
但它允许创建两篇带有默认值:true,用户id:1
你能帮帮我吗
另外,这种构造非常适用于验证:名称、唯一性:{scope::user_id},除非::default?
布尔值可能有问题吗?尝试这种验证:
validate :only_one_default_post_per_user
def only_one_default_post_per_user
if Post.exists?(:user_id => user_id, :default => true)
errors.add("Error! There is a default post for this user!")
end
end
问题解决了。10
rails重新启动后,它才开始工作 如果您删除最后的?
+1^则删除?
。。如果保留了默认值
,也很奇怪。