如何使用枚举查询活动记录

时间:2015-07-18 17:44:26

标签: activerecord rails-activerecord

我正在尝试此查询但它无效:

charAt

我不知道为什么但是我无法使用枚举来查询

1 个答案:

答案 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方法来获取键数组的值你传了进来。