提交 d4daf7bb 编写于 作者: M Michael Koziarski

Fix eager loading with pre-quoted table names. Closes #11046 [danielmorrison, Koz, Jeremy Kemper]


git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@8856 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
上级 c9402b22
......@@ -1379,7 +1379,7 @@ def include_eager_conditions?(options)
end
end
return false unless conditions.any?
conditions.join(' ').scan(/([\.\w]+)\.\w+/).flatten.any? do |condition_table_name|
conditions.join(' ').scan(/([\.\w]+).?\./).flatten.any? do |condition_table_name|
condition_table_name != table_name
end
end
......@@ -1388,7 +1388,7 @@ def include_eager_conditions?(options)
def include_eager_order?(options)
order = options[:order]
return false unless order
order.to_s.scan(/([\.\w]+)\.\w+/).flatten.any? do |order_table_name|
order.to_s.scan(/([\.\w]+).?\./).flatten.any? do |order_table_name|
order_table_name != table_name
end
end
......
......@@ -119,6 +119,30 @@ def test_eager_association_loading_with_belongs_to_and_limit_and_offset_and_cond
assert_equal [6,7,8], comments.collect { |c| c.id }
end
def test_eager_association_loading_with_belongs_to_and_conditions_string_with_unquoted_table_name
assert_nothing_raised do
Comment.find(:all, :include => :post, :conditions => ['posts.id = ?',4])
end
end
def test_eager_association_loading_with_belongs_to_and_conditions_string_with_quoted_table_name
assert_nothing_raised do
Comment.find(:all, :include => :post, :conditions => ["#{Comment.connection.quote_table_name('posts.id')} = ?",4])
end
end
def test_eager_association_loading_with_belongs_to_and_order_string_with_unquoted_table_name
assert_nothing_raised do
Comment.find(:all, :include => :post, :order => 'posts.id')
end
end
def test_eager_association_loading_with_belongs_to_and_order_string_with_quoted_table_name
assert_nothing_raised do
Comment.find(:all, :include => :post, :order => Comment.connection.quote_table_name('posts.id'))
end
end
def test_eager_association_loading_with_belongs_to_and_limit_and_multiple_associations
posts = Post.find(:all, :include => [:author, :very_special_comment], :limit => 1, :order => 'posts.id')
assert_equal 1, posts.length
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册