0
class Foo
  store :custom_fields, accessors: [:bar1, :bar2, :bar3]

  validates :bar1, presence: true
  validates :bar3, presence: true
end

foo = Foo.new
foo.bar1 = 'hello'
foo.bar2 = 'hello again'

foo.save(validate: false) # => foo is now saved in the database

foo.update(bar2: 'an update to bar2') # => ERROR! since bar3 fails validation

无论如何要更新而不验证?我找到了 update_columns 方法,但它似乎不适用于 Active Record Store 等序列化数据。

另一种方法是每次都调用 foo.save(validate: false) ,但我真的想更新我的数据而不是每次都插入新记录。

4

1 回答 1

2

您应该能够简单地更新属性,然后调用保存:

foo.bar2 = 'an update to bar2'
foo.save(validate: false)
于 2013-08-27T00:22:02.317 回答