【发布时间】:2011-08-27 04:09:15
【问题描述】:
我在我的 rails 3.0.10 应用程序中使用了 Permanent_records gem,以防止硬删除,而且似乎 rails 在检查唯一性时忽略了我的默认范围
# user.rb
class User < AR::Base
default_scope where(:deleted_at => nil)
validates_uniqueness_of :email # done by devise
end
在我的 Rails 控制台中,尝试通过已删除的电子邮件查找用户会导致 null,但是当使用已删除的电子邮件地址注册新帐户时,会导致电子邮件字段出现验证错误。
我的应用中的另一个模型也是如此
# group.rb
class Group < AR::Base
default_scope where(:deleted_at => nil)
validates_uniqueness_of :class_name
end
这与以前的情况相同,删除一个组然后尝试通过类名查找它会导致 nil,但是当我尝试使用已知的已删除类名创建一个组时,它会失败验证。
有谁知道我做错了什么,还是应该为此行为编写自定义验证器?
【问题讨论】:
标签: ruby-on-rails-3 activerecord