Has_many with :finder_sql returns [nil]?

Is it supposed to do that? I find it very confusing.

AR 3.0.10

class Unit
has_many :units, :finder_sql => proc {
“SELECT * FROM #{table_name} WHERE location_id=#{id} AND
location_type=#{Location::UNIT}” }
end

Both should return []. However…

Unit.first.units.find([1000000])
[2011-09-27 10:05:11|main|debug] Unit Load (4.0ms) SELECT units.*
FROM units LIMIT 1
[2011-09-27 10:05:11|main|debug] Unit Load (3.0ms) SELECT * FROM
units WHERE location_id=1 AND location_type=3
=> [nil]

Unit.first.units.find([1000000, 10])
[2011-09-27 10:05:19|main|debug] Unit Load (7.0ms) SELECT units.*
FROM units LIMIT 1
[2011-09-27 10:05:19|main|debug] Unit Load (2.0ms) SELECT * FROM
units WHERE location_id=1 AND location_type=3
=> []

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs