2012-01-09 118 views
2

因此,我有一個貨件最多可以有三個託運公司。所以我有這個...Rails 3 ActiveAdmin。如何用不同的外鍵設置has_many和belongs_to?

shipment belongs_to shipper 
shipper has_many shipments 

但我增加了兩個列的出貨量表:shipper_id_2和shipper_id_3。我如何設置關聯,並讓ActiveAdmin實現它?

+0

下面有什麼好的建議可能是正確的選擇。如果你想追求保留其他shipper_id在表中,你可以使用:foreign_key屬性設置用於匹配的外鍵,並將其設置爲列名(例如:foriegn_key =>'shipper_id_2追加到你的關聯中) 。 – 2012-01-09 22:14:58

回答

1

我會建議使用一類在中間那兩個指定的出貨量爲貨主。

class ShippingAssignments 
    belongs_to :shipment 
    belongs_to :shipper 
end 

class Shipment 
    has_many :shipping_assignments 
    has_many :shippers, :through => :shipping_assignments 
end 

class Shipper 
    has_many :shipping_assignments 
    has_many :shipments, :through => :shipping_assignments 
end 

您可以使用驗證器強制執行3個託運人的限制。

相關問題