2012-03-15 4 views
0

カートに商品を追加する方法を教えてください。 Rails Agileは、line_itemsを使用してカートに商品を追加する方法を説明しています。 私のウェブサイトでは観光パッケージ、リムジンサービス、アパートメントルーム、その他のお得な情報を提供しています。 お客様は、リムジン、ツアーパッケージ、カートへの提供、料金の支払いを行います。 彼らは異なったモデルのモデルですか?パッケージ、モデルリムジン、モデルアパートメントと他のモデルです。もしそうなら、私がline_items(cart_id、product_id)を通してカートに追加すると、私は他のモデルを追加する方法を理解できません。または、すべてのモデルを製品モデルにリンクする必要がありますか? ありがとうございますカートに複数のモデルを追加するには

+0

まず、データモデルを把握する必要があります。あなたはカートに商品を追加することを考え始めることができます。 – c0deNinja

+0

ケンは答えに感謝します。カテゴリーリムジン、ツアー、アパートですが、属性が異なります。異なる属性を持つ1つの製品モデルを持つことはできません。例。リムジンの色、ツアーの場所、アパートのサイズがあります。それをどう扱うか。 –

+0

あなたが販売しているときは、ショッピングカートは商品IDのみを気にする必要があります。その製品IDを使用して、すべての属性にアクセスするためにその製品モデルを取得できます。モデルをカートに追加する必要はありません。 – c0deNinja

答えて

0

おそらく、すべての製品タイプに異なるモデルは必要ありません。製品をさまざまなカテゴリに分類できます。つまり、カテゴリーモデルの1つだけ追加モデルが必要になります。各製品はカテゴリに属します(カテゴリには多くの製品が含まれます)。データベースには、各製品にcategory_idがあります。このよう

class Product < ActiveRecord::Base 

    belongs_to :category 
.... 


class Category < ActiveRecord::Base 
    has_many :products 

...

+0

ケンは答えに感謝します。カテゴリーリムジン、ツアー、アパートですが、属性が異なります。異なる属性を持つ1つの製品モデルを持つことはできません。例。リムジンの色、ツアーの場所、アパートのサイズがあります。それをどう扱うか。 –

+0

それはあなたの質問に入れるのに良い情報でした。あなたのオプションについては、この記事をご覧ください:http://code.alexreisner.com/articles/single-table-inheritance-in-rails.html –

0

あなたは、モデルは(属性の面で)あまりにも異なっていることに言及。したがって、単一テーブルの継承は、あなたが望むものではないかもしれません。この場合は、polymorphic associationを使用してください。

class LineItem < ActiveRecord::Base 
    belongs_to :purchasable, :polymorphic => true 
end 

class Tour < ActiveRecord::Base 
    has_many :line_items, :as => :purchasable 
end 

class LimoService < ActiveRecord::Base 
    has_many :line_items, :as => :purchasable 
end 
関連する問題