0

ブールフィールドがデフォルトのモデルPostがあります。投稿はユーザーに属しています。ユーザーのデフォルト(たとえばtrueに設定)の投稿が1つだけであることを確認したいと思います。これを試しました:

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

しかしそれは2つの投稿を作成することができます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

問題が解決しました。10回rails s再起動すると、動作を開始しました。

于 2012-07-20T13:46:24.670 に答える