Rails - update_column和ActiveRecord枚举

时间:2016-11-21 00:32:02

标签: ruby-on-rails ruby ruby-on-rails-4 activerecord

我需要在我的Rails应用程序中使用update_column来阻止回调运行。我有一个enum的ActiveRecord模型:

class Car < ActiveRecord::Base
  enum state: [:not_used, :used]
end

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

@car.update_attribute :state, :not_used

是否可以使用update_column做类似的事情?

我正在使用 Rails 4.2

1 个答案:

答案 0 :(得分:6)

update_column无法识别符号作为枚举的变体。我认为您必须使用Car.states[:not_used]代替:not_used。像这样:

@car.update_column :state, Car.states[:not_used]