How do i access attriutes when using eager_load has_many

Hi
this code:

x = Project.where(‘status=?’,‘active’).eager_load(:tasks)

produces a nice query, in sql everythig is ok, all columns have been
alias
as t0_r1,…

but how do i access it? my loops are failing when tryin to access the
associates attribute:

x = Project.where(‘status=?’,‘active’).eager_load(:tasks)
x.each do |rec|
p rec.id #<< OK
p rec.tasks.id # << OUCH
end

pls advise

thx

On Wed, Jan 27, 2016 at 9:49 AM, tom [email protected] wrote:

x = Project.where(‘status=?’,‘active’).eager_load(:tasks)

but how do i access it? my loops are failing when tryin to access the
associates attribute:

x = Project.where(‘status=?’,‘active’).eager_load(:tasks)
x.each do |rec|
p rec.id #<< OK
p rec.tasks.id # << OUCH
end

pls advise

  1. “OUCH”? What does that mean? You’ll generally get more useful
    answers if you show an actual error message. And for that matter
    googling that error will frequently give you pointers towards
    solving
    it yourself.

  2. I would guess that “tasks” is a collection; do you expect that to
    have an id? Or are you looking for the id of an individual task?

    If in doubt, try: p rec.tasks.class


Hassan S. ------------------------ [email protected]

twitter: @hassan
Consulting Availability : Silicon Valley or remote

ok, u r right - i was just frustrated because i was going back and forth
between joins , includes etc - here the ‘error’

undefined method `id’ for
#Task::ActiveRecord_Associations_CollectionProxy:0xc4686a4
p rec.tasks.id

On Wed, Jan 27, 2016 at 1:06 PM, Hassan S. <

ok, if i do this then i can acces the associated records:
x = Project.where(‘status=?’,‘active’).eager_load(:tasks)
x.each do |rec|
p rec.id #<< OK
rec.tasks http://rec.tasks.id/ each do |y|
p y.id
end
end

i guess i was just expecting a flat table because thats what i saw in
the
mysql query result pane

thx again