mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Array attribute conditions work with proxied association collections. Closes #8318.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@7133 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
08d23d5375
commit
02311a5db1
3 changed files with 8 additions and 2 deletions
|
@ -1,5 +1,7 @@
|
|||
*SVN*
|
||||
|
||||
* Array attribute conditions work with proxied association collections. #8318 [kamal, theamazingrando]
|
||||
|
||||
* Fix polymorphic has_one associations declared in an abstract class. #8638 [lifofifo, daxhuiberts]
|
||||
|
||||
* Fixed validates_associated should not stop on the first error #4276 [mrj/manfred/josh]
|
||||
|
|
|
@ -1287,7 +1287,7 @@ module ActiveRecord #:nodoc:
|
|||
def attribute_condition(argument)
|
||||
case argument
|
||||
when nil then "IS ?"
|
||||
when Array then "IN (?)"
|
||||
when Array, ActiveRecord::Associations::AssociationCollection then "IN (?)"
|
||||
when Range then "BETWEEN ? AND ?"
|
||||
else "= ?"
|
||||
end
|
||||
|
|
|
@ -8,7 +8,7 @@ require 'fixtures/developer'
|
|||
require 'fixtures/post'
|
||||
|
||||
class FinderTest < Test::Unit::TestCase
|
||||
fixtures :companies, :topics, :entrants, :developers, :developers_projects, :posts, :comments, :accounts
|
||||
fixtures :companies, :topics, :entrants, :developers, :developers_projects, :posts, :comments, :accounts, :authors
|
||||
|
||||
def test_find
|
||||
assert_equal(topics(:first).title, Topic.find(1).title)
|
||||
|
@ -159,6 +159,10 @@ class FinderTest < Test::Unit::TestCase
|
|||
assert_raises(ActiveRecord::RecordNotFound) { Topic.find(1, :conditions => { :approved => true }) }
|
||||
end
|
||||
|
||||
def test_find_on_association_proxy_conditions
|
||||
assert_equal [1, 2, 3, 5, 6, 7, 8, 9, 10], Comment.find_all_by_post_id(authors(:david).posts).map(&:id).sort
|
||||
end
|
||||
|
||||
def test_find_on_hash_conditions_with_range
|
||||
assert_equal [1,2], Topic.find(:all, :conditions => { :id => 1..2 }).map(&:id).sort
|
||||
assert_raises(ActiveRecord::RecordNotFound) { Topic.find(1, :conditions => { :id => 2..3 }) }
|
||||
|
|
Loading…
Reference in a new issue