method

build_named_bound_sql_literal

build_named_bound_sql_literal(statement, values)
private

No documentation available.

# File activerecord/lib/active_record/relation/query_methods.rb, line 1666
      def build_named_bound_sql_literal(statement, values)
        bound_values = values.transform_values do |value|
          if ActiveRecord::Relation === value
            Arel.sql(value.to_sql)
          elsif value.respond_to?(:map) && !value.acts_like?(:string)
            values = value.map { |v| v.respond_to?(:id_for_database) ? v.id_for_database : v }
            values.empty? ? nil : values
          else
            value = value.id_for_database if value.respond_to?(:id_for_database)
            value
          end
        end

        begin
          Arel::Nodes::BoundSqlLiteral.new("(#{statement})", nil, bound_values)
        rescue Arel::BindError => error
          raise ActiveRecord::PreparedStatementInvalid, error.message
        end
      end