Forum: Ruby on Rails Associations in models - am I doing it wrong?

Posted by Dan Brooking (Guest)
on 2012-12-09 21:27
(Received via mailing list)
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?
Posted by Colin Law (Guest)
on 2012-12-09 22:59
(Received via mailing list)
On 9 December 2012 20:25, Dan Brooking <dmbrooking@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
Posted by Dan Brooking (Guest)
on 2012-12-09 23:24
(Received via mailing list)
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?
Posted by Colin Law (Guest)
on 2012-12-10 09:30
(Received via mailing list)
On 9 December 2012 22:22, Dan Brooking <dmbrooking@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
Please log in before posting. Registration is free and takes only a minute.
Existing account (Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
No account? Register here.