Re: Rails HABTM records

Colin Law
Wed, 06 Apr 2011 09:56:48 -0000

On 6 April 2011 04:56, Sachin Joshi
<sachin.joshi-Pif7/TdT6AJWk0Htik3J/w@public.gmane.org>
wrote:
> Hello Experts,
> I have a HABTM association between User and Account model through a
> table users_accounts

I am surprised it works, I would have expected Rails to look for table
accounts_users, unless you are specifying has_many through, rather
than HABTM.

> the association seems to be working fine, e.g.
> when i do
>
> @user.account

That should be @user.accounts.  If @user.account works then you have
not specified the relationships correctly.

> it fetches the associated record which is just one record as of now.
> @user.account
> => [#<Account id: 1, acc_name: "test account", created_at:
"2011-03-16
> 10:39:03", updated_at: "2011-04-03 01:58:03">]

Notice the square brackets.  This is an array of accounts, containing
one element.

>
> When i use @user.account.acc_name in the view, it throws the following
> error.
>
> undefined method `acc_name'' for #<Class:0x317e6b0>

That is because @user.account is an array.  You need something like
@user.account[0].acc_name, or @user.account.first.acc_name.

If you still can''t work it out post the class definitions with the
association specifications (copy and paste from your code so as to
avoid confusing typos).

Colin

--
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-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org