2012-07-20 74 views
0

我有布爾型字段默認的模型Post。帖子屬於用戶。我想確保用戶只有一個默認值(例如設置爲true)。嘗試這樣:Rails 3驗證條件的唯一性

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

但它允許創建兩個帖子與default: true, user_id: 1

你能幫幫我嗎?

P.S.這個建設完美適用於validates :name, uniqueness: { scope: :user_id }, unless: :default?可能是布爾人有問題嗎?

+0

如果你放棄最後的'?',那該怎麼辦? – Chowlett 2012-07-20 13:10:43

+1

+1 ^放下'?'..也好奇是否保留了'default'。 – Trip 2012-07-20 13:25:27

回答

-4

問題解決了。 10 rails s重新啓動後,它纔開始工作。

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