From 581f12b7b18a6e5205bfabb814f6e9997bf92be8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tobias=20L=C3=BCtke?= Date: Tue, 20 Dec 2005 21:26:27 +0000 Subject: removed :piggyback in favor of just allowing :select on :through associations git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3326 5ecf4fe2-1ee6-0310-87b1-e25e094e27de --- activerecord/CHANGELOG | 2 ++ activerecord/lib/active_record/associations.rb | 2 +- .../lib/active_record/associations/has_many_through_association.rb | 6 +----- activerecord/test/fixtures/category.rb | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/activerecord/CHANGELOG b/activerecord/CHANGELOG index 48b14f52cb..45ef990ddb 100644 --- a/activerecord/CHANGELOG +++ b/activerecord/CHANGELOG @@ -1,5 +1,7 @@ *SVN* +* removed :piggyback in favor of just allowing :select on :through associations. [Tobias Luetke] + * made method missing delegation to class methods on relation target work on :through associations. [Tobias Luetke] * made .find() work on :through relations. [Tobias Luetke] diff --git a/activerecord/lib/active_record/associations.rb b/activerecord/lib/active_record/associations.rb index 8ee6eca15f..562a2dc6b7 100755 --- a/activerecord/lib/active_record/associations.rb +++ b/activerecord/lib/active_record/associations.rb @@ -881,7 +881,7 @@ module ActiveRecord :class_name, :table_name, :foreign_key, :exclusively_dependent, :dependent, :select, :conditions, :include, :order, :group, :limit, :offset, - :as, :through, :piggyback, + :as, :through, :finder_sql, :counter_sql, :before_add, :after_add, :before_remove, :after_remove, :extend diff --git a/activerecord/lib/active_record/associations/has_many_through_association.rb b/activerecord/lib/active_record/associations/has_many_through_association.rb index ea338e4658..7233876a2d 100644 --- a/activerecord/lib/active_record/associations/has_many_through_association.rb +++ b/activerecord/lib/active_record/associations/has_many_through_association.rb @@ -85,11 +85,7 @@ module ActiveRecord end def construct_select - selected = ["#{@reflection.table_name}.*"] - if @reflection.options[:piggyback] - selected += [@reflection.options[:piggyback]].flatten.collect { |field| "#{@owner.class.reflections[@reflection.options[:through]].table_name}.#{field}" } - end - selected.join(', ') + selected = @reflection.options[:select] || "#{@reflection.table_name}.*" end def construct_scope diff --git a/activerecord/test/fixtures/category.rb b/activerecord/test/fixtures/category.rb index d0e0dfb770..9be459a80f 100644 --- a/activerecord/test/fixtures/category.rb +++ b/activerecord/test/fixtures/category.rb @@ -6,7 +6,7 @@ class Category < ActiveRecord::Base end has_many :categorizations - has_many :authors, :through => :categorizations, :piggyback => [:post_id] + has_many :authors, :through => :categorizations, :select => 'authors.*, categorizations.post_id' end class SpecialCategory < Category -- cgit v1.2.3