Flowdock
method

build_for_case_sensitive

Importance_0
v5.1.7 - Show latest stable - 0 notes - Class: WhereClauseFactory
  • 1.0.0
  • 1.1.6
  • 1.2.6
  • 2.0.3
  • 2.1.0
  • 2.2.1
  • 2.3.2
  • 2.3.8
  • 3.0.0
  • 3.0.9
  • 3.1.0
  • 3.2.1
  • 3.2.8
  • 3.2.13
  • 4.0.2
  • 4.1.8
  • 4.2.1
  • 4.2.7
  • 4.2.9
  • 5.0.0.1
  • 5.1.7 (0)
  • 5.2.3
  • 6.0.0
  • 6.1.3.1
  • What's this?
build_for_case_sensitive(attributes, options) private

No documentation

This method has no description. You can help the Ruby on Rails community by adding new notes.

Hide source
# 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
Register or log in to add new notes.