属性使用枚举时如何进行活动记录查询

时间:2019-04-18 20:17:22

标签: ruby-on-rails enumerize

class AppointmentResponse < ActiveRecord::Base
...
  extend Enumerize
  enumerize :status, in: %i[unreviewed approved rejected], default: :unreviewed
...
end

迁移:

def change
   add_column :appointment_responses, :status, :string
end

因此,我的想法是我应该能够进行以下查询:

AppointmentResponse.where(status: :unreviewed)

但这返回:[]

但是我知道这是错误的。权限A:

 #<AppointmentResponse:0x007feb02c5d290
  id: 16,
  ...
  status: "unreviewed">

我可以通过以下方法确认我没有犯过一些可怕的字符错误:

AppointmentResponse.last.status == "unreviewed"

true

我想念什么?我也将extend Enumerize切换为include Enumerize。还是一样。我也尝试添加 scope: truepredicates: true,仍然没有。我知道枚举与活动记录一起使用。我在做什么错了?

1 个答案:

答案 0 :(得分:1)

我发现我需要添加到迁移中:

def变化    add_column:appointment_responses,:status,:string,默认值:'unreviewed' 结束