我有一个模型使用'active'标志来软删除项目而不是销毁它们。该模型具有“名称”属性,该属性在活动项目中必须是唯一的。我试图用conditions
修改器与validates_uniqueness_of
,但它似乎仍然检查活动和非活动项目的唯一性。我究竟做错了什么?Rails:validates_uniqueness_of条件不按预期工作
class Foo < ActiveRecord::Base
attr_accessible :name, :active
validates_uniqueness_of :name, conditions: -> { where(active:true) }
end
做这样的事情唯一的问题是当你然后想重新激活一个不活动的Foo,但你不能,因为它将是无效的。 – sevenseacat