mirror of
https://github.com/github/rails.git
synced 2026-04-04 03:00:58 -04:00
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
This commit is contained in:
@@ -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]
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
2
activerecord/test/fixtures/category.rb
vendored
2
activerecord/test/fixtures/category.rb
vendored
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user