method

build_with_expression_from_value

build_with_expression_from_value(value, nested = false)
private

No documentation available.

# File activerecord/lib/active_record/relation/query_methods.rb, line 1929
      def build_with_expression_from_value(value, nested = false)
        case value
        when Arel::Nodes::SqlLiteral then Arel::Nodes::Grouping.new(value)
        when ActiveRecord::Relation
          if nested
            value.arel.ast
          else
            value.arel
          end
        when Arel::SelectManager then value
        when Array
          return build_with_expression_from_value(value.first, false) if value.size == 1

          parts = value.map do |query|
            build_with_expression_from_value(query, true)
          end

          parts.reduce do |result, value|
            Arel::Nodes::UnionAll.new(result, value)
          end
        else
          raise ArgumentError, "Unsupported argument type: `#{value}` #{value.class}"
        end
      end