Skip to content

Commit

Permalink
Fixed issue that kept :select options from being scoped [Rick]
Browse files Browse the repository at this point in the history
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4036 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
  • Loading branch information
technoweenie committed Mar 26, 2006
1 parent c3c39b5 commit 6636eb1
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 3 deletions.
2 changes: 2 additions & 0 deletions activerecord/CHANGELOG
@@ -1,5 +1,7 @@
*SVN*

* Fixed issue that kept :select options from being scoped [Rick]

* Fixed db_schema_import when binary types are present #3101 [DHH]

* Fixed that MySQL enums should always be returned as strings #3501 [DHH]
Expand Down
Expand Up @@ -106,7 +106,7 @@ def construct_joins(custom_joins = nil)

def construct_scope
{
:find => { :from => construct_from, :conditions => construct_conditions, :joins => construct_joins },
:find => { :from => construct_from, :conditions => construct_conditions, :joins => construct_joins, :select => construct_select },
:create => { @reflection.primary_key_name => @owner.id }
}
end
Expand Down
4 changes: 2 additions & 2 deletions activerecord/lib/active_record/base.rb
Expand Up @@ -873,7 +873,7 @@ def with_scope(method_scoping = {}, action = :merge, &block)
method_scoping.assert_valid_keys([ :find, :create ])

if f = method_scoping[:find]
f.assert_valid_keys([ :conditions, :joins, :from, :offset, :limit, :readonly ])
f.assert_valid_keys([ :conditions, :joins, :select, :from, :offset, :limit, :readonly ])
f[:readonly] = true if !f[:joins].blank? && !f.has_key?(:readonly)
end

Expand Down Expand Up @@ -980,7 +980,7 @@ def type_name_with_module(type_name)
end

def construct_finder_sql(options)
sql = "SELECT #{options[:select] || '*'} "
sql = "SELECT #{scope(:find, :select) || options[:select] || '*'} "
sql << "FROM #{scope(:find, :from) || options[:from] || table_name} "

add_joins!(sql, options)
Expand Down
4 changes: 4 additions & 0 deletions activerecord/test/associations_join_model_test.rb
Expand Up @@ -316,6 +316,10 @@ def test_add_to_self_referential_has_many_through
assert_equal new_author, authors(:david).reload.favorite_authors.first
end

def test_has_many_through_uses_correct_attributes
assert_nil posts(:thinking).tags.find_by_name("General").attributes["tag_id"]
end

private
# create dynamic Post models to allow different dependency options
def find_post_with_dependency(post_id, association, association_name, dependency)
Expand Down

0 comments on commit 6636eb1

Please sign in to comment.