In my rails app (v: 3.1) deployed on heroku I am getting more objects of same id in memory. my heroku console log:
>> Project.find_all_by_id(92).size
=> 2
>> ActiveRecord::Base.connection.execute('select * from projects where id=92').to_a.size
=> 1
How is this possible? What could be the problem?
Solution
There is apparently no duplicate entry in your database according to your SQL query.
Maybe size or length method in your class Project has been overridden. I have tried find_all_by_id and the SQL query seems to be correct.
1.9.2-p180 :006 > Script.find_all_by_id(1).size
Script Load (0.7ms) SELECT "scripts".* FROM "scripts" WHERE "scripts"."id" = 1
=> 1
Hint
If you want to count records you should do it this way
Script.where(id: 1).size
(0.8ms) SELECT COUNT(*) FROM "scripts" WHERE "scripts"."id" = 1
=> 1
Because, as you can see, the count is performed by your database and not by ruby itself. For a dozen of rows you won't see the difference, but if you have thousands or millions...
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With