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: true
和predicates: true
,仍然没有。我知道枚举与活动记录一起使用。我在做什么错了?
答案 0 :(得分:1)
我发现我需要添加到迁移中:
def变化 add_column:appointment_responses,:status,:string,默认值:'unreviewed' 结束