Rails validates_uniqueness_of旧数据

时间:2015-11-26 22:01:49

标签: ruby-on-rails-3

我在模型中进行了验证

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...

有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

name实际上是该表的一列吗?或者它是指另一个表(来自,例如globalize)的方法?如果它是一个相关记录,请确保正确清理,如上所述保留acts_as_paranoid

答案 1 :(得分:0)

有时在控制台中,您需要重新加载它才能获得最新结果。

尝试:

reload!

甚至退出或退回。

干杯!