我在模型中进行了验证
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...
有什么想法吗?
谢谢!
答案 0 :(得分:3)
name
实际上是该表的一列吗?或者它是指另一个表(来自,例如globalize
)的方法?如果它是一个相关记录,请确保正确清理,如上所述保留acts_as_paranoid
。
答案 1 :(得分:0)
有时在控制台中,您需要重新加载它才能获得最新结果。
尝试:
reload!
甚至退出或退回。
干杯!