method

build_for_case_sensitive

build_for_case_sensitive(attributes, options)
private

No documentation available.

# File activerecord/lib/active_record/relation/where_clause_factory.rb, line 45
        def build_for_case_sensitive(attributes, options)
          parts, binds = [], []
          table = klass.arel_table

          attributes.each do |attribute, value|
            if reflection = klass._reflect_on_association(attribute)
              attribute = reflection.foreign_key.to_s
              value = value[reflection.klass.primary_key] unless value.nil?
            end

            if value.nil?
              parts << table[attribute].eq(value)
            else
              column = klass.column_for_attribute(attribute)

              binds << predicate_builder.send(:build_bind_param, attribute, value)
              value = Arel::Nodes::BindParam.new

              predicate = if options[:case_sensitive]
                klass.connection.case_sensitive_comparison(table, attribute, column, value)
              else
                klass.connection.case_insensitive_comparison(table, attribute, column, value)
              end

              parts << predicate
            end
          end

          [parts, binds]
        end