我正在尝试创建一个像API这样的小型电子商务。我正在尝试使用Faker创建模拟用户,并创建一个在种子期间作为外键附加到它的购物车的实例(每个用户都应该有一个购物车)。我尝试了两种不同的方法
这些文件位于db文件夹的seed.rb文件中 尝试1: 5次 Product.create({ 标题:Faker :: Commerce.product_name, 价格:Faker :: Commerce.price, stock_count:Faker :: Number.number(2) })
end
3.times do
ShoppingCart.create({
total_price: 0
}) do |t|
User.create({
name: Faker::Name.name,
shopping_carts_id: t.id
})
end
end
尝试2 :(产品的完全相同的创建方式)
3次 购物车= ShoppingCart.create({ 总计价格:0 })
User.create({
name: Faker::Name.name,
shopping_carts_id: cart.id
})
end
end
这是模特
class ShoppingCart < ApplicationRecord
belongs_to :users
has_many :products
end
运行种子时,可以很好地创建用户,但那里没有购物车。用户应在其购物车上有一个外键。我对Rails还是很陌生,很难理解数据库关系。
答案 0 :(得分:0)
您是否尝试过通过迁移添加外键并查看结果是什么?
rails g migration AddForeignKeyToShoppingCart
然后在新的迁移文件中,添加以下内容:
def change
add_foreign_key :shopping_carts, :users
end