gpt4 book ai didi

ruby - Rails3 : combine scope with OR

转载 作者:数据小太阳 更新时间:2023-10-29 06:45:48 26 4
gpt4 key购买 nike

我需要将名称范围与 or 运算符组合...像这样的东西:

class Product < ActiveRecord::Base
belongs_to :client

scope :name_a, where("products.name = 'a'")
scope :client_b, joins(:client).where("clients.name = 'b'")

scope :name_a_or_b, name_a.or(client_b)
end

谢谢

最佳答案

来自 Arel documentation

The OR operator is not yet supported. It will work like this: users.where(users[:name].eq('bob').or(users[:age].lt(25)))

This RailsCast向您展示如何使用 .or 运算符。但是,当您拥有 ActiveRecord::Relation 实例时,它可以与 Arel 对象一起使用。您可以使用 Product.name_a.arel 将关系转换为 Arel,但现在您必须弄清楚如何合并条件。

关于ruby - Rails3 : combine scope with OR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3548548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com