3

我正在使用 Ruby on Rails 3.2.2 和 Squeel gem。我想知道是否有一种方法可以使用多个范围方法,以便生成带有OR与这些范围方法 SQL 条件相关的子句的 SQL 查询。也就是说,我有:

class Article < ActiveRecord::Base
  def self.scope_method_1
    ... # scope_method_1 SQL conditions
  end

  def self.scope_method_2
    ... # scope_method_2 SQL conditions
  end

  def self.scope_method_combination
    # I am looking for something like
    #
    # where{scope_method_1 | scope_method_2} # Note: The '|' means the SQL 'OR' clause in the Squeel context
    #
    # so to generate the following SQL query:
    #
    # SELECT FROM articles WHERE <scope_method_1 SQL conditions> OR <scope_method_2 SQL conditions>
  end
end

是否可以使用范围方法生成 SQLOR子句(通过使用或不使用 Squeel gem)?

4

1 回答 1

1

我们一直在squeel 问题跟踪器上讨论这个问题,基本答案似乎是否定的。至少没有范围;但是,如果您将范围转换为筛子,则可以。

于 2012-07-12T02:56:08.497 回答