【问题标题】:Rails has_many dual relationship with other modelRails has_many 与其他模型的双重关系
【发布时间】:2012-05-14 07:10:41
【问题描述】:

我试图从一个模型到另一个模型建立两个 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

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

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

【问题讨论】:

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


    【解决方案1】:

    相信你可以设置类和外键来得到想要的结果。

    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
    

    【讨论】:

    • 效果很好,谢谢!我一直忘记在 Reservations 模型的行尾添加 foreign_key
    【解决方案2】:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多