2
因此,我有一個貨件最多可以有三個託運公司。所以我有這個...Rails 3 ActiveAdmin。如何用不同的外鍵設置has_many和belongs_to?
shipment belongs_to shipper
shipper has_many shipments
但我增加了兩個列的出貨量表:shipper_id_2和shipper_id_3。我如何設置關聯,並讓ActiveAdmin實現它?
因此,我有一個貨件最多可以有三個託運公司。所以我有這個...Rails 3 ActiveAdmin。如何用不同的外鍵設置has_many和belongs_to?
shipment belongs_to shipper
shipper has_many shipments
但我增加了兩個列的出貨量表:shipper_id_2和shipper_id_3。我如何設置關聯,並讓ActiveAdmin實現它?
我會建議使用一類在中間那兩個指定的出貨量爲貨主。
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個託運人的限制。
下面有什麼好的建議可能是正確的選擇。如果你想追求保留其他shipper_id在表中,你可以使用:foreign_key屬性設置用於匹配的外鍵,並將其設置爲列名(例如:foriegn_key =>'shipper_id_2追加到你的關聯中) 。 – 2012-01-09 22:14:58