bataras
(bataras)
1
Re-asking...
I have a parent with has_many children. The children have a column
'blah'. IF I do the following:
parent.children.find_by_blah(42)
The sql exectued is:
select * from blah where parent_id = 1 and blah = 42
select * from blah where parent_id = 1
The first line of sql is what I want. The second appears to be
ActiveRecord loading up all of parent.children. This I don't want b/c
children is huge.
How to I use ActiveRecord to find the children "by_blah" without
causing ALL children to be selected from the DB?
thanks
Mark_James
(Mark James)
2
bataras wrote:
parent.children.find_by_blah(42)
The sql exectued is:
select * from blah where parent_id = 1 and blah = 42
select * from blah where parent_id = 1
The first line of sql is what I want. The second appears to be
ActiveRecord loading up all of parent.children. This I don't want b/c
children is huge.
Somewhere later you must be referring to the naked parent.children
collection, just like in your earlier problem
http://groups.google.com/group/rubyonrails-talk/browse_thread/thread/d741810f309336a3/594abd2765f61201
bataras
(bataras)
3
No i just want to use idiomatic rails to cause
select * from blah where parent_id = 1 and blah = 42
without causing rails to also do a presumptive
select * from blah where parent_id = 1
Instead of using parent.children.find_by_blah(42), should I just just
do Child.find(:all, :condition => ['parent = ? and blah = ?",
parent.id, 42] ?
Kind of funky to me.