以下代码给出了一个空范围。 Category_ids
是一系列类别。
scope :art, ->{ where(:category_ids => '1') }
如何检查阵列中是否存在其中一个类别?
答案 0 :(得分:0)
如果你使用Postgres,你可以使用这种方法:https://www.viget.com/articles/searching-serialized-fields-in-rails-using-postgres-arrays
答案 1 :(得分:0)
示例:
has_many :categories
scope :art, -> { required = [Category.first]; where(categories: required) }
我认为在您的模型中,您有categories
关联。在这种情况下,您可以在where查询中使用categories: required
。 required
应设置为您想要的类别数组
答案 2 :(得分:0)
你说category_ids是一个类别数组(我假设是类别id)。您是否尝试使用该阵列中的类别ID返回所有记录?如果是这样,你正在寻找:
scope :art, -> { where (:category_id => category_ids) }
或者使用新的ruby语法:
scope :art, -> { where(category_id: category_ids) }
如果我误解了你并且你正在寻找类别ID为1的任何记录,那么你正在寻找:
scope :art, -> { where(category_id: '1') }