Rails与其他模型有着双重关系

时间:2012-05-04 18:06:33

标签: ruby-on-rails database has-many belongs-to

我正试图从一个模型到另一个模型获得两个has_many关系。 具体来说,我想:

class Driver < Active:Record::Base
  has_many :reservations
  has_many :requested_reservations

class Reservations < Active:Record::Base
  belongs_to :driver
  belongs_to :requester

第一个是在预订模型上使用driver_id的正常has_many / belongs_to关系。

但是对于第二个,我希望能够调用@driver.requested_reservations@reservation.requester,并让它使用Reservations类中的requester_id列。 我需要在那些has_many和belongs_to行的末尾放置什么才能让它正常工作?

2 个答案:

答案 0 :(得分:2)

我相信你可以设置类和外键来获得所需的结果。

class Driver < Active:Record::Base
  has_many :reservations
  has_many :requested_reservations, class_name: 'Reservation', foreign_key: 'your_id'
  ...
end

class Reservations < Active:Record::Base
  belongs_to :driver
  belongs_to :requester, class_name: 'Driver', foreign_key: 'requester_id'
  ...
end

答案 1 :(得分:0)