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
。
我在模型中进行了验证
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
。