mirror of
https://github.com/github/rails.git
synced 2026-04-26 03:00:59 -04:00
Merge pull request #3030 from htanata/fix_habtm_select_query_method
Fix: habtm doesn't respect select query method
This commit is contained in:
@@ -42,10 +42,6 @@ module ActiveRecord
|
||||
select_value ||= options[:uniq] && "DISTINCT #{reflection.quoted_table_name}.*"
|
||||
end
|
||||
|
||||
if reflection.macro == :has_and_belongs_to_many
|
||||
select_value ||= reflection.klass.arel_table[Arel.star]
|
||||
end
|
||||
|
||||
select_value
|
||||
end
|
||||
|
||||
|
||||
@@ -650,6 +650,14 @@ class HasAndBelongsToManyAssociationsTest < ActiveRecord::TestCase
|
||||
assert_respond_to categories(:technology).select_testing_posts.find(:first), :correctness_marker
|
||||
end
|
||||
|
||||
def test_habtm_selects_all_columns_by_default
|
||||
assert_equal Project.column_names, developers(:david).projects.first.attributes.keys
|
||||
end
|
||||
|
||||
def test_habtm_respects_select_query_method
|
||||
assert_equal ['id'], developers(:david).projects.select(:id).first.attributes.keys
|
||||
end
|
||||
|
||||
def test_join_table_alias
|
||||
assert_equal 3, Developer.find(:all, :include => {:projects => :developers}, :conditions => 'developers_projects_join.joined_on IS NOT NULL').size
|
||||
end
|
||||
|
||||
@@ -485,6 +485,14 @@ class HasManyAssociationsTest < ActiveRecord::TestCase
|
||||
assert_equal 0, authors(:mary).popular_grouped_posts.length
|
||||
end
|
||||
|
||||
def test_default_select
|
||||
assert_equal Comment.column_names, posts(:welcome).comments.first.attributes.keys
|
||||
end
|
||||
|
||||
def test_select_query_method
|
||||
assert_equal ['id'], posts(:welcome).comments.select(:id).first.attributes.keys
|
||||
end
|
||||
|
||||
def test_adding
|
||||
force_signal37_to_load_all_clients_of_firm
|
||||
natural = Client.new("name" => "Natural Company")
|
||||
|
||||
Reference in New Issue
Block a user