Ruby on rails 4 通过rails中的几个枚举值选择对象
我使用枚举存储模型的状态:Ruby on rails 4 通过rails中的几个枚举值选择对象,ruby-on-rails-4,enums,rails-activerecord,Ruby On Rails 4,Enums,Rails Activerecord,我使用枚举存储模型的状态: enum status: [ :fresh, :approved, :rejected, :returned, :completed, :removed ] 现在我想选择具有多个状态值的对象,如下所示: Documents.find_by_status(:fresh, :returned) 如何在Rails 4中正确执行此操作?每个枚举属性在表列中都有其值的整数表示。 默认情况下,您的状态将具有值–新鲜:0、批准:1、拒绝:2等等。 获取具有一个或另一个值的实例的
enum status: [ :fresh, :approved, :rejected, :returned, :completed, :removed ]
现在我想选择具有多个状态值的对象,如下所示:
Documents.find_by_status(:fresh, :returned)
如何在Rails 4中正确执行此操作?每个枚举属性在表列中都有其值的整数表示。 默认情况下,您的状态将具有值–新鲜:0、批准:1、拒绝:2等等。 获取具有一个或另一个值的实例的最简单方法是调用类似的东西
Document.where(status: [0, 1])
为了提高可读性,可以在模型中实现范围
class Document < ActiveRecord::Base
enum status: %i(fresh approved rejected returned completed removed)
scope :find_by_status, ->(*args) { where(status: self.statuses.values_at(*args)) }
end
Document.find_by_status(:fresh, :returned)