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