Rails validates_uniqueness_of 旧数据

Rails validates_uniqueness_of old data

我在模型中进行了验证

validates_uniqueness_of :name

我用默认名称创建了一个新对象,并且保存它没有问题。之后,我销毁了它,当我想保存一个同名的新对象时,出现以下错误:

ActiveRecord::RecordInvalid: Validation failed: Name has already been taken

我正在使用 Rails 3.0.20

2.1.5 :041 > f = FixtureType.new(:name => 'fixture type test')
 => #<FixtureType id: nil, name: "fixture type test", ...> 
2.1.5 :042 > f.save!
 => true 
2.1.5 :043 > f.destroy
 => #<FixtureType id: 1433, name: "fixture type test", ...> 
2.1.5 :044 > f = FixtureType.new(:name => 'fixture type test')
 => #<FixtureType id: nil, name: "fixture type test", ...> 
2.1.5 :045 > f.save!
ActiveRecord::RecordInvalid: Validation failed: Name has already been taken...

有什么想法吗?

谢谢!!

有时您需要在控制台中重新加载它以获取最新结果。

尝试:

reload!

甚至注销或重新登录。

干杯!

name 实际上是 table 的一列吗?或者它是一个引用另一个 table 的方法(来自,例如 globalize)?如果它是关联记录,请确保它已正确清理,如 Paul 上面所说,占 acts_as_paranoid