0

我有带有布尔字段默认值的模型 Post。帖子属于用户。我想确保用户只有一个默认(例如设置为 true)帖子。试过这个:

validates :default, uniqueness: { scope: :user_id }, if: :default?

但它允许创建两个帖子default: true, user_id: 1

你能帮我么?

PS这个结构非常适合validates :name, uniqueness: { scope: :user_id }, unless: :default?布尔值可能有问题吗?

4

2 回答 2

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
于 2012-07-20T13:40:57.963 回答
-4

问题解决了。10rails s次​​重新启动后,它才开始工作。

于 2012-07-20T13:46:24.670 回答