2012-01-09 94 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个托运人的限制。

相关问题