Dumb question

25 views
Skip to first unread message

brent brent

unread,
May 27, 2012, 1:34:44 PM5/27/12
to rubyonra...@googlegroups.com
Folks
Can a model just have a belongs_to only? or do you have to have a
belongs_to and a has_many or has_one on the other model?

--
Posted via http://www.ruby-forum.com/.

Agis A.

unread,
May 27, 2012, 1:38:17 PM5/27/12
to rubyonra...@googlegroups.com
Of course you can. 

Greg Akins

unread,
May 27, 2012, 1:38:51 PM5/27/12
to rubyonra...@googlegroups.com
On Sun, May 27, 2012 at 1:34 PM, brent brent <li...@ruby-forum.com> wrote:
> Folks
>  Can a model just have a belongs_to only? or do you have to have a
> belongs_to and a has_many or has_one on the other model?
>
> --

http://guides.rubyonrails.org/association_basics.html#the-belongs_to-association

--
Greg Akins
http://twitter.com/akinsgre

Rafael Magaña

unread,
May 28, 2012, 11:21:03 AM5/28/12
to rubyonra...@googlegroups.com
What belongs_to and their counterparts does is create a method to access an existing relationship, the actual relationship is made in the tables themselves by adding model_id columns, for instance:

    class User < ActiveRecord::Base
        has_one :address
    end

    class Address < ActiveRecord::Base
        belongs_to :user
    end

    # Shows the address whose addresses.user_id = users.id
    User.last.address

    # Shows the user whose users.id = addresses.user_id
    Address.last.user

If you don't need to access the relationship in the Address model just delete `belongs_to :user`:
    
    class Address < ActiveRecord::Base

    end
 
    User.last.address # Shows address
    Address.last.user # NoMethodError: undefined method `user'
Reply all
Reply to author
Forward
0 new messages