私のオンライン ストアでは、各注文に配送先住所と請求先住所が関連付けられています (もちろん、同じ住所でもかまいません)。これは、これをモデル化する最初の試みです。
Class Order
belongs_to :billing_address, :class => "Address"
belongs_to :shipping_address, :class => "Address"
これはかなりうまく機能しますが、フォーム ヘルパーが機能しなくなりました。つまり、form_for
のような名前のフィールドのみを生成するaddress[zipcode]
ため、手動でハックして および を取得する必要がbilling_address[zipcode]
ありshipping_address[zipcode]
ます。
単一テーブルの継承を使用してandにサブクラスAddress
化できると思いますが、これは少しハックに思えます (そして、Customer <--> Address をモデル化するための最良の方法のいくつかの良い答えと矛盾します)。ShippingAddress
BillingAddress