Association to User using a key named approver_id

9 views
Skip to first unread message

John Sanderbeck

unread,
Jan 26, 2020, 10:55:56 AM1/26/20
to Ruby on Rails: Talk
I KNOW this is probably very simple, but I am scratching my head trying to get it to work...

I have a table with a key named approver_id

What I want to do is associate this to the User class

So I can do Event.approver.first_name, etc...

in Event I have

has_one :approver, class: 'User'

So how do I define the relationship to associate Event.approver_id to User.id

John

Niklas Bichinger

unread,
Jan 26, 2020, 1:24:18 PM1/26/20
to rubyonra...@googlegroups.com
Use „class_name“, not „class“ as option key. Also, from the Model that *holds the ID* of the other Model, it’s always „belongs_to“.

So in Event:
belongs_to :approver, class_name: „User“
and you’re good to go.


Sent via iPhone.

Am 26.01.2020 um 16:56 schrieb John Sanderbeck <band...@gmail.com>:


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/bfbf73d2-2cf4-4c52-9896-5b58028f6f3d%40googlegroups.com.

John Sanderbeck

unread,
Jan 26, 2020, 5:12:08 PM1/26/20
to Ruby on Rails: Talk
Sorry...  I was using class_name:   Typed it incorrectly here...

This worked for me...

  has_one :approver, class_name: "User", foreign_key: 'id', primary_key: 'approver_id'

John


On Sunday, January 26, 2020 at 1:24:18 PM UTC-5, Niklas Bichinger wrote:
Use „class_name“, not „class“ as option key. Also, from the Model that *holds the ID* of the other Model, it’s always „belongs_to“.

So in Event:
belongs_to :approver, class_name: „User“
and you’re good to go.


Sent via iPhone.

Am 26.01.2020 um 16:56 schrieb John Sanderbeck <band...@gmail.com>:


I KNOW this is probably very simple, but I am scratching my head trying to get it to work...

I have a table with a key named approver_id

What I want to do is associate this to the User class

So I can do Event.approver.first_name, etc...

in Event I have

has_one :approver, class: 'User'

So how do I define the relationship to associate Event.approver_id to User.id

John

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rubyonra...@googlegroups.com.

Niklas Bichinger

unread,
Jan 27, 2020, 3:24:05 AM1/27/20
to rubyonra...@googlegroups.com
This should be much more easily done with belongs_to really...

has_one is used if the other model holds the id to this model. Which, if I understood correctly, isn’t the case in your code.

Am 26.01.2020 um 23:12 schrieb John Sanderbeck <band...@gmail.com>:


To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-ta...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/19718c01-2b17-434b-90d4-866626ad7911%40googlegroups.com.
Reply all
Reply to author
Forward
0 new messages