2

私はレールの世界にかなり慣れていないので、オンライン ストアの作成を任されています。

ただし、現在、データベース関係の設定に問題があります。製品寸法配送クラスがあります。顧客が選択した製品バリエーションに応じて、製品には複数のディメンションが含まれる場合があります。製品の寸法によって送料が決まりますが、寸法ごとにいくつかの配送オプションが提供されます。これが私の現在の設定です:

製品.rb

class Product < ActiveRecord::Base
  attr_accessible :title, :description, :image_url, :price, :category_id, :weighting, :stock
  has_many :dimensions
end

寸法.rb

class Weight < ActiveRecord::Base
  attr_accessible :product_id, :size, :weight
  has_and_belongs_to :shippings
  belongs_to :product
end

配送.rb

class Shipping < ActiveRecord::Base
  attr_accessible :description, :insurance, :name, :price, :size_id, :weight_id
  has_and_belongs_to :dimensions
end

これがこのデータベース関係をセットアップするための最良の方法であるかどうかについて、誰かアドバイスをいただけますか? そうでない場合、より最適なソリューションは何でしょうか?

has_many :throughを利用するように言われましたが、これを実装する最善の方法がわかりません。

ありがとう

4

1 に答える 1

1

通常、 と の間の決定要因はhas_and_belongs_to_many、独自の属性をhas_many :through持つ関係オブジェクト (を結び付けるオブジェクト) が必要になるかどうかです。has_many :through

私にとっては、このようなやり過ぎを軽視することはめったにないので、常に を使用しhas_many :through、属性を追加しない場合は、そのままにしておきます。関連付けに便利な名前のモデルが提供され、その関連付けを検証したり、コールバックを取得したりできます...

Ruby on Rails ガイドでは、この2 つをよく比較しています。

また、RoR ストアを作成している場合は、Spreeを見ましたか?

于 2013-08-19T22:19:32.833 に答える