我正在尝试此查询但它无效:
charAt
我不知道为什么但是我无法使用枚举来查询
答案 0 :(得分:1)
OrderFulfillment.where(shopper_id: shopper.id,
fulfillment_status: OrderFulfillment
.fulfillment_statuses
.values_at([:fulfillment_requested_assignment,
:fulfillment_assigned,
:fulfillment_shopping]))
Rails不够聪明,不知道你传递的是密钥,而不是值,所以当你直接传递状态时,它正在查找错误的值(它将它们更改为null
,因为它没有不明白。枚举实际存储为整数,因此您实际需要在查询中使用它。因此,您可以使用Rails提供的fulfillment_statuses
方法来获取枚举的键/值对的散列,然后使用散列的values_at
方法来获取键数组的值你传了进来。