Ruby on Rails Wednesday, January 27, 2016

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 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


On Wed, Jan 27, 2016 at 1:09 PM, tom <tomabroad@gmail.com> wrote:
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>



On Wed, Jan 27, 2016 at 1:06 PM, Hassan Schroeder <hassan.schroeder@gmail.com> wrote:
On Wed, Jan 27, 2016 at 9:49 AM, tom <tomabroad@gmail.com> 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 Schroeder ------------------------ hassan.schroeder@gmail.com
http://about.me/hassanschroeder
twitter: @hassan
Consulting Availability : Silicon Valley or remote

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CACmC4yDjCt977YQ8zEQE0jEe3wrWN1mhUmxuujBFuSGSo6qXww%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscribe@googlegroups.com.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/CADQqhMe-HMVnpu_%3DmTse04JFGEo%3D_Latrrc45CgKsr2mg4mh6Q%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

No comments:

Post a Comment