instance method build_named_bound_sql_literal

Ruby on Rails 8.1.2

Since v7.2.3 Private

Available in: v7.2.3 v8.0.4 v8.1.2

Signature

build_named_bound_sql_literal(statement, values)

No documentation comment.

Parameters

statement req
values req
Source
# File activerecord/lib/active_record/relation/query_methods.rb, line 1682
      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

Defined in activerecord/lib/active_record/relation/query_methods.rb line 1682 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveRecord::QueryMethods

Type at least 2 characters to search.

↑↓ navigate · open · esc close