Ticket #6485: polymorphic_sti_associations_bug.diff
| File polymorphic_sti_associations_bug.diff, 3.2 kB (added by antonio, 2 years ago) |
|---|
-
activerecord/lib/active_record/associations/association_proxy.rb
old new 87 87 def set_belongs_to_association_for(record) 88 88 if @reflection.options[:as] 89 89 record["#{@reflection.options[:as]}_id"] = @owner.id unless @owner.new_record? 90 record["#{@reflection.options[:as]}_type"] = @owner.class. base_class.name.to_s90 record["#{@reflection.options[:as]}_type"] = @owner.class.name.to_s 91 91 else 92 92 record[@reflection.primary_key_name] = @owner.id unless @owner.new_record? 93 93 end -
activerecord/lib/active_record/associations/has_one_association.rb
old new 69 69 when @reflection.options[:as] 70 70 @finder_sql = 71 71 "#{@reflection.klass.table_name}.#{@reflection.options[:as]}_id = #{@owner.quoted_id} AND " + 72 "#{@reflection.klass.table_name}.#{@reflection.options[:as]}_type = #{@owner.class.quote @owner.class. base_class.name.to_s}"72 "#{@reflection.klass.table_name}.#{@reflection.options[:as]}_type = #{@owner.class.quote @owner.class.name.to_s}" 73 73 else 74 74 @finder_sql = "#{@reflection.table_name}.#{@reflection.primary_key_name} = #{@owner.quoted_id}" 75 75 end -
activerecord/lib/active_record/associations/has_many_association.rb
old new 167 167 when @reflection.options[:as] 168 168 @finder_sql = 169 169 "#{@reflection.klass.table_name}.#{@reflection.options[:as]}_id = #{@owner.quoted_id} AND " + 170 "#{@reflection.klass.table_name}.#{@reflection.options[:as]}_type = #{@owner.class.quote @owner.class. base_class.name.to_s}"170 "#{@reflection.klass.table_name}.#{@reflection.options[:as]}_type = #{@owner.class.quote @owner.class.name.to_s}" 171 171 @finder_sql << " AND (#{conditions})" if conditions 172 172 173 173 else -
activerecord/lib/active_record/associations.rb
old new 659 659 660 660 if association.updated? 661 661 self["#{reflection.primary_key_name}"] = association.id 662 self["#{reflection.options[:foreign_type]}"] = association.class. base_class.name.to_s662 self["#{reflection.options[:foreign_type]}"] = association.class.name.to_s 663 663 end 664 664 end 665 665 EOF