我想在用户和产品之间建立模型关联,因此我尝试通过关联使用has_many。关于Rails模型关联
但是有多种类型的产品。
一个用户:User.rb
三种产品:Shoe.rb Shirt.rb Pant.rb和每个模型都有不同种类的属性,所以我不能将它们集成在一起。
虽然每个用户可以有很多产品,但产品只能有一个用户。
我已经做了一些像下面这样的模拟关联。
User.rb
has_many :purchasements
has_many :shoes, through: :purchasements
has_many :shirts, through: :purchasements
has_many :pants, through: :purchasements
迁移用户
nothing more than default
Purchasement.rb
belongs_to :user
belongs_to :shoe
belongs_to :shirt
belongs_to :pant
用于迁移统购统销
t.belongs_to :user
t.belongs_to :shoe
t.belongs_to :shirt
t.belongs_to :pant
Shoe.rb/Shirt.rb/Pant.rb
has_one :purchasement
has_one :user, through: :purchasement
迁移鞋/衬衫/裤子
nothing more than default
我试图让用户通过purchasements模式购买的每个产品。
purchasement_controller.rb
def create
@shoe = params[:target_shoe] #Could be shoe, shirt or pant
current_user.shoes << @shoe
current_user.save
end
另一个尝试
def create
@shoe = params[:target_shoe] #Could be shoe, shirt or pant
shoe_transaction = current_user.purchasements.create
shoe_transaction.shoe = @shoe
end
它不通过中间模型保存,purchasemnets.rb
我在哪里丢失的?
它给了我一个错误比我需要保存衬衫鞋裤子一起。
提前感谢。
为什么你有单独的鞋子,衬衫和裤子的模特/桌子?即使他们没有分享他们所有的属性,它会让你的生活更容易在同一张桌子上。您也可以查看一些名为STI(单表继承)的东西。 – Iceman
我怎样才能将它放在同一张桌子上,以方便生活。 ? –
我把它们分开的主要原因是我没有真正处理产品。这是关于学术论文的类型应该有不同的逻辑来显示自己 –