2012-01-09 22 views
2

私は最大3つの荷送人会社を持つことができる貨物を持っています。だから私は...これを持っRails 3 ActiveAdmin。別の外部キーを使用してhas_manyとbelongs_toを設定するにはどうすればよいですか?

shipment belongs_to shipper 
shipper has_many shipments 

しかし、私は出荷テーブルには2つの以上の列を追加しました:shipper_id_2とshipper_id_3を。アソシエーションをセットアップしてActiveAdminに認識させるにはどうすればいいですか?

+0

GoodEnoughが以下で提案するものはおそらく正しい方法です。他のshipper_idをテーブルに保持したい場合は、:foreign_key属性を使用して列名に設定することで照合に使用する外部キーを設定できます(例:foriegn_key => 'あなたの関連付けに追加されたshipper_id_2) 。 –

答えて

1

この2つのクラスの中間クラスを使用して、荷送人に荷物を割り当てることをお勧めします。

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つの荷送人の制限を適用することができます。

関連する問題