Ruby on Rails Thursday, December 2, 2010

Look at things in the debugger, but the likelihood is that you're
trying to operate on what you think is an array of records, but is
just a query.

my_moods = MyMood.where("my criteria")

my_moods.collect.... Error

then my_moods.all.collect.... and you're good to go.

or my_moods = MyMood.where("my criteria").all
and my_moods.collect...

On Dec 1, 7:53 pm, itsterry <itste...@gmail.com> wrote:
> I have three models:
> (1) Mood
> (2) User
> (3) Mymood
>
> Mymood belongs_to mood
> Mymood belongs_to user
>
> User has_many mymoods
>
> I have a function in User, like this:
>
> def moods
>   if mymoods.empty?
>     []
>   else
>     mymoods.collect{|mm| mm.mood}
>   end
> end
>
> In Rails2, User.first.moods returns an array of moods (or an empty
> array where there are none)
>
> In Rails3, I get a big old error: uninitialized constant Mymood::Mood
>
> I'm guessing it's something to do with lazy loading, because if I call
> (in the console)
>  User.first.mymoods
> then
>   User.first.moods
> it all works as it should, but if I just call on its own:
>   User.first.moods
> I get the error above
>
> Any guidance gratefully received!

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

No comments:

Post a Comment