3

私のオンライン ストアでは、各注文に配送先住所と請求先住所が関連付けられています (もちろん、同じ住所でもかまいません)。これは、これをモデル化する最初の試みです。

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 をモデル化するための最良の方法のいくつかの良い答えと矛盾します)。ShippingAddressBillingAddress

4

2 に答える 2

2

私はあなたのために2つのアイデアを持っています、どちらかまたは両方がトリックをするかもしれません:

Class Order
  belongs_to :billing_address, :class_name => "Address"
  belongs_to :shipping_address, :class_name => "Address"

Class Order
  belongs_to :address, :foreign_key => "billing_address_id"
  belongs_to :address, :foreign_key => "shipping_address_id"

フォームヘルパーを試してみてください。うまくいくかどうか知りたいです。それが役に立てば幸い!

于 2009-04-07T19:46:35.353 に答える