Associations in models - am I doing it wrong?

15 views
Skip to first unread message

Dan Brooking

unread,
Dec 9, 2012, 3:25:23 PM12/9/12
to rubyonra...@googlegroups.com
One of my modesl looks like this:

class UnprocessedPage < ActiveRecord::Base
     has_one :user
     attr_accessible :url, :user_id
end

Do I need :user_id?  Or is it implied via "has_one :user"?

This is working as is.. but when I look for examples of other things, I never see any attributes with *_id... so I'm wondering if it's implied and I'm just mucking things up?

Colin Law

unread,
Dec 9, 2012, 4:57:23 PM12/9/12
to rubyonra...@googlegroups.com
On 9 December 2012 20:25, Dan Brooking <dmbro...@gmail.com> wrote:
> One of my modesl looks like this:
>
> class UnprocessedPage < ActiveRecord::Base
> has_one :user
> attr_accessible :url, :user_id
> end
>
> Do I need :user_id? Or is it implied via "has_one :user"?

You should not have a user_id column in the database for a has_one
association. If UnprocessedPage has_one :user then User belongs_to
:unprocessed_page and User should have an unprocessed_page_id column.
Are you sure you do not mean User has_many :unprocessed_pages and
UnprocessedPage belongs_to :user?

Have a look at the Rails Guide on ActiveRecord Associations for more
details and if you have not already done so then work right through a
good rails tutorial such as railstutorial.org, which is free to use
online, in order to get the basics of Rails.

Colin

Dan Brooking

unread,
Dec 9, 2012, 5:22:17 PM12/9/12
to rubyonra...@googlegroups.com
OK, yeah you are right.  It shouldn't be has_one. It sounds like the associated you mentioned is the one I'm looking for.  With that said, would I still have a user_id column? or would that be implicit via the belongs_to?



--
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 rubyonra...@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-ta...@googlegroups.com.

Colin Law

unread,
Dec 10, 2012, 3:28:16 AM12/10/12
to rubyonra...@googlegroups.com
On 9 December 2012 22:22, Dan Brooking <dmbro...@gmail.com> wrote:
> OK, yeah you are right. It shouldn't be has_one. It sounds like the
> associated you mentioned is the one I'm looking for. With that said, would
> I still have a user_id column? or would that be implicit via the belongs_to?

Using belongs_to implies that you must provide a user_id column in the
database. As I said, work through the tutorial and study the guides
and all will become clear (well, less muddy at least).

Colin
Reply all
Reply to author
Forward
0 new messages