method
create_binds
v4.2.9 -
Show latest stable
-
0 notes -
Class: ActiveRecord::QueryMethods
- 1.0.0
- 1.1.6
- 1.2.6
- 2.0.3
- 2.1.0
- 2.2.1
- 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 (0)
- 4.2.7 (0)
- 4.2.9 (0)
- 5.0.0.1
- 5.1.7
- 5.2.3
- 6.0.0
- 6.1.3.1
- 6.1.7.7
- 7.0.0
- 7.1.3.2
- 7.1.3.4
- What's this?
create_binds(opts)
private
Hide source
# File activerecord/lib/active_record/relation/query_methods.rb, line 966 def create_binds(opts) bindable, non_binds = opts.partition do |column, value| PredicateBuilder.can_be_bound?(value) && @klass.columns_hash.include?(column.to_s) && !@klass.reflect_on_aggregation(column) end association_binds, non_binds = non_binds.partition do |column, value| value.is_a?(Hash) && association_for_table(column) end new_opts = {} binds = [] connection = self.connection bindable.each do |(column,value)| binds.push [@klass.columns_hash[column.to_s], value] new_opts[column] = connection.substitute_at(column) end association_binds.each do |(column, value)| association_relation = association_for_table(column).klass.send(:relation) association_new_opts, association_bind = association_relation.send(:create_binds, value) new_opts[column] = association_new_opts binds += association_bind end non_binds.each { |column,value| new_opts[column] = value } [new_opts, binds] end