提交 0472839d 编写于 作者: T Tristan Dunn 提交者: Pratik Naik

Prevent overwriting of table name in merging SQL conditions [#2949 state:resolved]

上级 00d6c766
......@@ -2294,10 +2294,12 @@ def expand_hash_conditions_for_aggregates(attrs)
# And for value objects on a composed_of relationship:
# { :address => Address.new("123 abc st.", "chicago") }
# # => "address_street='123 abc st.' and address_city='chicago'"
def sanitize_sql_hash_for_conditions(attrs, table_name = quoted_table_name)
def sanitize_sql_hash_for_conditions(attrs, default_table_name = quoted_table_name)
attrs = expand_hash_conditions_for_aggregates(attrs)
conditions = attrs.map do |attr, value|
table_name = default_table_name
unless value.is_a?(Hash)
attr = attr.to_s
......
......@@ -368,6 +368,12 @@ def test_named_scopes_batch_finders
end
end
end
def test_table_names_for_chaining_scopes_with_and_without_table_name_included
assert_nothing_raised do
Comment.for_first_post.for_first_author.all
end
end
end
class DynamicScopeMatchTest < ActiveRecord::TestCase
......
class Comment < ActiveRecord::Base
named_scope :containing_the_letter_e, :conditions => "comments.body LIKE '%e%'"
named_scope :for_first_post, :conditions => { :post_id => 1 }
named_scope :for_first_author,
:joins => :post,
:conditions => { "posts.author_id" => 1 }
belongs_to :post, :counter_cache => true
def self.what_are_you
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册