Merge pull request #3030 from htanata/fix_habtm_select_query_method

Fix: habtm doesn't respect select query method
This commit is contained in:
Jon Leighton
2011-09-26 08:45:53 -07:00
parent d6cff93152
commit 89e98e278a
3 changed files with 16 additions and 4 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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")