我的模型Post有布尔字段默认值。帖子属于User。我想确保用户只有一个默认(例如设置为true)帖子。试过这个:
validates :default, uniqueness: { scope: :user_id }, if: :default?
但它允许使用default: true, user_id: 1
你能帮帮我吗?
P.S。这种结构适用于validates :name, uniqueness: { scope: :user_id }, unless: :default?
可能是布尔有问题吗?
答案 0 :(得分:2)
尝试此验证:
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
答案 1 :(得分:-4)
问题解决了。 10 rails s
重新启动后,它才开始工作。