Rails - update_column和ActiveRecord枚举

ale*_*333 4 ruby activerecord ruby-on-rails ruby-on-rails-4

我需要update_column在我的Rails应用程序中使用以防止回调被运行.我有我的ActiveRecord模型与枚举:

class Car < ActiveRecord::Base
  enum state: [:not_used, :used]
end
Run Code Online (Sandbox Code Playgroud)

在正常情况下(即当我确实希望回调运行时)我可以使用类似的东西:

@car.update_attribute :state, :not_used
Run Code Online (Sandbox Code Playgroud)

是否可以做类似的事情update_column

我正在使用Rails 4.2

小智 6

update_column不识别符号作为枚举的变体.我认为你必须使用Car.states[:not_used]而不是:not_used.像这样:

@car.update_column :state, Car.states[:not_used]
Run Code Online (Sandbox Code Playgroud)