Accessing results of retrieve where

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?

Thanks,

Dave

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

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