removing SQL interpolation, please use scoping and attribute conditionals as a replacement
This commit is contained in:
parent
6ca921a98c
commit
3e64336647
@ -1,5 +1,8 @@
|
||||
*Rails 3.1.0 (unreleased)*
|
||||
|
||||
* Removed support for interpolated SQL conditions. Please use scoping
|
||||
along with attribute conditionals as a replacement.
|
||||
|
||||
* Added ActiveRecord::Base#has_secure_password (via ActiveModel::SecurePassword) to encapsulate dead-simple password usage with BCrypt encryption and salting [DHH]. Example:
|
||||
|
||||
# Schema: User(name:string, password_digest:string, password_salt:string)
|
||||
|
@ -389,14 +389,9 @@ def find_associated_records(ids, reflection, preload_options)
|
||||
end
|
||||
end
|
||||
|
||||
|
||||
def interpolate_sql_for_preload(sql)
|
||||
instance_eval("%@#{sql.gsub('@', '\@')}@", __FILE__, __LINE__)
|
||||
end
|
||||
|
||||
def append_conditions(reflection, preload_options)
|
||||
sql = ""
|
||||
sql << " AND (#{interpolate_sql_for_preload(reflection.sanitized_conditions)})" if reflection.sanitized_conditions
|
||||
sql << " AND (#{reflection.sanitized_conditions})" if reflection.sanitized_conditions
|
||||
sql << " AND (#{sanitize_sql preload_options[:conditions]})" if preload_options[:conditions]
|
||||
sql
|
||||
end
|
||||
|
@ -658,10 +658,6 @@ def test_limited_eager_with_numeric_in_association
|
||||
assert_equal people(:david, :susan), Person.find(:all, :include => [:readers, :primary_contact, :number1_fan], :conditions => "number1_fans_people.first_name like 'M%'", :order => 'people.id', :limit => 2, :offset => 0)
|
||||
end
|
||||
|
||||
def test_preload_with_interpolation
|
||||
assert_equal [comments(:greetings)], Post.find(posts(:welcome).id, :include => :comments_with_interpolated_conditions).comments_with_interpolated_conditions
|
||||
end
|
||||
|
||||
def test_polymorphic_type_condition
|
||||
post = Post.find(posts(:thinking).id, :include => :taggings)
|
||||
assert post.taggings.include?(taggings(:thinking_general))
|
||||
|
@ -40,9 +40,6 @@ def find_most_recent
|
||||
has_many :author_favorites, :through => :author
|
||||
has_many :author_categorizations, :through => :author, :source => :categorizations
|
||||
|
||||
has_many :comments_with_interpolated_conditions, :class_name => 'Comment',
|
||||
:conditions => ['#{"#{aliased_table_name}." rescue ""}body = ?', 'Thank you for the welcome']
|
||||
|
||||
has_one :very_special_comment
|
||||
has_one :very_special_comment_with_post, :class_name => "VerySpecialComment", :include => :post
|
||||
has_many :special_comments
|
||||
|
Loading…
Reference in New Issue
Block a user