Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

removed :piggyback in favor of just allowing :select on :through asso…

…ciations

git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3326 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information...
commit 581f12b7b18a6e5205bfabb814f6e9997bf92be8 1 parent 90099e9
Tobias Lütke authored
View
2  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]
View
2  activerecord/lib/active_record/associations.rb
@@ -881,7 +881,7 @@ def create_has_many_reflection(association_id, options, &extension)
: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
View
6 activerecord/lib/active_record/associations/has_many_through_association.rb
@@ -85,11 +85,7 @@ def construct_from
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
View
2  activerecord/test/fixtures/category.rb
@@ -6,7 +6,7 @@ def self.what_are_you
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
Please sign in to comment.
Something went wrong with that request. Please try again.