Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails multiple belongs_to for same class

Say I have a model of type A, and a model of type B, which has the fields a_id a2_id. I want to have something like:

class B
  belongs_to :a
  belongs_to :a (using a2)
end

Does anyone know how I would do this? I am trying to use the class B to link similar objects in my DB.

like image 656
joncalhoun Avatar asked Jul 24 '12 00:07

joncalhoun


2 Answers

You can do this

class B
  belongs_to :a
  belongs_to :a2, foreign_key: 'a2_id', class_name: 'A'
end
like image 111
Ismael Avatar answered Nov 13 '22 05:11

Ismael


or even this:

class B < ActiveRecord::Base
  attr_accessible :a2_id, :a_id, :name
  belongs_to :a
  belongs_to :a2, class_name: "A"
end
like image 32
bento Avatar answered Nov 13 '22 05:11

bento