【发布时间】:2015-07-29 18:04:12
【问题描述】:
我有以下型号
class Request < ActiveRecord::Base
# Enumerables
enum status: [:pending, :accepted, :completed]
end
迁移看起来像这样:
class CreateRequests < ActiveRecord::Migration
def change
create_table :requests do |t|
t.column :status, :integer, default: 0, index: true
end
end
end
为了问题而简化。
现在,关于我的 Enums 的一切工作正常。
@request.pending?
@request.accepted!
# And so on...
但是当我执行以下查询时:
Request.where(status: :accepted)
这是我的日志显示的内容:
SELECT "requests".* FROM "requests" WHERE "requests"."status" = NULL LIMIT 20 OFFSET 0
这显然是错误的,因为NULL。现在我知道我可以做到这一点
Request.accepted
但另一种方式也应该有效,如the documentation 中所述。
发生了什么事??
【问题讨论】:
-
那些不是可枚举的,它们是枚举。大不同!
标签: ruby-on-rails ruby-on-rails-4 enums