あなたはSO
ガイドラインに関するご質問をフォーマットする必要がありますまず第一に、それは多分だ、私はあなたがpolymorphic associationsを探していると思います。 Product
は、お店で利用可能な製品とLineItem
であることを意味すると仮定すると
は順番に製品を表す:それはあなたのproducts
テーブルを動作させるために
class LineItem < ActiveRecord::Base
has_one :product # ONE LineItem references ONE product in the shop
belongs_to :cart # respectively belongs_to :order
end
class Cart < ActiveRecord::Base
has_many :line_items # ONE Cart HAS MANY LineItems
end
class Product < ActiveRecord::Base
belongs_to :buyable, :polymorphic => true
# here you would have general attributes representing a product, e.g. 'name'
end
class Car < ActiveRecord::Base
has_one :product, :as => :buyable
# here you would have specific attributes in addition to the general attributes in
# product, e.g. 'brand'
end
class Apartment < ActiveRecord::Base
has_one :product, :as => :buyable
# here you would have specific attributes in addition to the general attributes in
# product, e.g. 'address'
end
を2列
を持っている必要があります
- buyable_type(文字列)
- buyable_id(整数)
だからあなたのコードでは、あなたの製品は、あなたがここに誰が答えることが十分_understand_ことができると疑問を_ask_するために必要な努力を入れていないので、ダウン票がそうである
@product = Product.find(params[:id])
if @product.buyable.is_a? Car
puts @product.buyable.brand
elsif @product.buyable.is_a? Apartment
puts @product.buyable.address
end
を実行している正確に何をチェックすることができます。他の質問を見てみると、多くの詳細、特に例を挙げて、彼らが試したことを示す人々が見えます。質問が難しいほど詳細が必要です。上記の質問を見ると、あなたがしようとしていることについて大いに理解していることを前提としていることに気付くでしょう。それ自身の上に立つ質問を書いてください(これを編集してください!)あなたはおそらく答えを得るでしょう。 –