Ruby on Rails Wednesday, January 29, 2014

On Jan 29, 2014, at 10:18 PM, Dave Castellano wrote:

> Hi,
>
> I am searching for a record using "where":
>
> @profile = Profile.where(:user_id => current_user.id)
>
> This returns:
> => [#<Profile id: 6, user_id: 19, last_subject_id: 6, last_book_id: 2,
> last_chapter_id: 1, last_section_id: 1, last_subsection_id: 1,
> last_minisection_id: 20, about: nil, image: nil, created_at: "2013-03-13
> 01:45:44", updated_at: "2014-01-30 02:11:54", students_last_subject_id:
> 6, students_last_book_id: nil, students_last_chapter_id: nil>]
>
> I am trying to then access "students_last_subject_id" using several
> methods including @profile.students_last_subject_id,
> but it keeps returning nil. With the enclosing brackets i am guessing
> this is not a hash, but I also cannot access it as an array .
>
> Can anyone help?

Where always returns an array (sometimes it's empty). If you want to get the record (or nil) you can use Profile.find(current_user.id) instead. That will return the bare object (not wrapped in an array) and you can get the attributes out of it. If you want to use where(), then do this:

@profile = Profile.where(:user_id => current_user.id).first

Walter

>
> Thanks,
>
> Dave
>
> --
> Posted via http://www.ruby-forum.com/.
>
> --
> 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/20d1e13abaf5242ca87537ed4a3a31c5%40ruby-forum.com.
> For more options, visit https://groups.google.com/groups/opt_out.

--
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/96111787-B8F4-4399-9C2C-C6037E534621%40wdstudio.com.
For more options, visit https://groups.google.com/groups/opt_out.

No comments:

Post a Comment