Class: ActiveRecord::Associations::AssociationProxy
- Inherits:
-
Object
- Object
- ActiveRecord::Associations::AssociationProxy
- Defined in:
- lib/composite_primary_keys/associations/association_proxy.rb
Instance Method Summary collapse
- #full_columns_equals(table_name, keys, quoted_ids) ⇒ Object
- #set_belongs_to_association_for(record) ⇒ Object
Instance Method Details
#full_columns_equals(table_name, keys, quoted_ids) ⇒ Object
4 5 6 7 8 9 10 11 12 13 |
# File 'lib/composite_primary_keys/associations/association_proxy.rb', line 4 def full_columns_equals(table_name, keys, quoted_ids) quoted_table_name = @owner.connection.quote_table_name(table_name) keys = [keys].flatten ids = [quoted_ids].flatten [keys,ids].transpose.map do |key, id| "(#{quoted_table_name}.#{@owner.connection.quote_column_name(key)} = #{id})" end.join(' AND ') end |
#set_belongs_to_association_for(record) ⇒ Object
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/composite_primary_keys/associations/association_proxy.rb', line 15 def set_belongs_to_association_for(record) if @reflection.[:as] record["#{@reflection.[:as]}_id"] = @owner.id unless @owner.new_record? record["#{@reflection.[:as]}_type"] = @owner.class.base_class.name.to_s else unless @owner.new_record? primary_key = @reflection.[:primary_key] || :id # CPK # record[@reflection.primary_key_name] = @owner.send(primary_key) values = [@owner.send(primary_key)].flatten key_values = @reflection.cpk_primary_key.zip(values) key_values.each {|key, value| record[key] = value} end end end |