10
我使用permanent_records寶石在我的Rails應用程序3.0.10,防止硬刪除默認的範圍,它似乎軌無視我的默認範圍,檢查的唯一Rails 3名中驗證的唯一忽略的型號
# user.rb
class User < AR::Base
default_scope where(:deleted_at => nil)
validates_uniqueness_of :email # done by devise
end
在我的Rails控制檯中,試圖通過已刪除的電子郵件找到用戶結果爲空,但在註冊帶有已刪除電子郵件地址的新帳戶時,會在電子郵件字段中導致驗證錯誤。
這也是在我的應用程序
# group.rb
class Group < AR::Base
default_scope where(:deleted_at => nil)
validates_uniqueness_of :class_name
end
另一種模式的情況下,這是相同的情況下,和以前一樣,刪除一個組,然後試圖通過在無類名結果中找到它,但是當我嘗試創建一個具有已知的刪除類名稱的組,但驗證失敗。
有誰知道如果我做錯了什麼,或者我應該只爲這種行爲編寫自定義驗證器?
好吧,只是不要忘記,「validates_uniqueness_of」在rails 3中已棄用。請改用「validates:email,:uniqueness => {:scope =>:deleted_at}」。 – sandrew
它不會調用同一個驗證器嗎? – Jimmy
我會將此標記爲正確,因爲它會很好,昨天晚上幸運的是我沒有考慮問題,我寫了我自己的作用域獨特性驗證程序 – Jimmy