如何将 User_ID 分配给种子
How do I assign a User_ID to the seed
我正在尝试将随机 user_id 分配给从种子数据库生成的产品。除了呈现 nil 的 user_id 之外,一切都按照我的意愿为我生成。我试图更好地了解 belongs_to 交互的工作原理 - 此处的任何帮助都很棒!
10.times do |n|
name = Faker::Name.name
job = Faker::Company.name
User.create!(name: name,
job: job )
end
10.times do |n|
users = User.all
name = "Turkey"
price = Random.rand(42-10) + 10
user_id = users[1..10]
Product.create!(name: name,
price: price,
user_id: user_id)
end
在此先感谢您的帮助!
编辑** 感谢大家的帮助。这就是我最终将代码更改为的内容。
users = User.order(:created_at).take(6)
10.times do |n|
name = "Turkey"
price = Random.rand(42-10) + 10
users.each { |user| user.products.create!(name: name, price: price)}
end
你可能是这个意思:
user_id = users.last.id
或者可能:
user_id = users.shuffle.last.id
我不确定你的范围符号 1..10
是什么意思。数组是从 0 开始索引的。
用户 ID 将按顺序自动为每个新用户生成。那里不需要 "user_id" 字段。
就像Mukul215说的那样,ID会按顺序自动生成。在种子中硬编码 ID 是错误的做法。
在为产品分配随机用户 ID 方面,我不是 100% 了解您的要求。从您对@tadman 回答的评论来看,您似乎只希望产品属于每个用户。为什么不做这样的事情:
10.times do |n|
name = Faker::Name.name
job = Faker::Company.name
User.create!(name: name, job: job)
end
User.all.each do |user|
name = "Turkey"
price = Random.rand(42-10) + 10
user.products.create!(name: name, price: price)
end
假设您的用户模型有很多产品,并且一个产品属于一个应该得到您想要的结果的用户。
user.products
会在发送build
或create
[=时自动将user.id
分配给user_id
字段到product
记录17=]
我正在尝试将随机 user_id 分配给从种子数据库生成的产品。除了呈现 nil 的 user_id 之外,一切都按照我的意愿为我生成。我试图更好地了解 belongs_to 交互的工作原理 - 此处的任何帮助都很棒!
10.times do |n|
name = Faker::Name.name
job = Faker::Company.name
User.create!(name: name,
job: job )
end
10.times do |n|
users = User.all
name = "Turkey"
price = Random.rand(42-10) + 10
user_id = users[1..10]
Product.create!(name: name,
price: price,
user_id: user_id)
end
在此先感谢您的帮助!
编辑** 感谢大家的帮助。这就是我最终将代码更改为的内容。
users = User.order(:created_at).take(6)
10.times do |n|
name = "Turkey"
price = Random.rand(42-10) + 10
users.each { |user| user.products.create!(name: name, price: price)}
end
你可能是这个意思:
user_id = users.last.id
或者可能:
user_id = users.shuffle.last.id
我不确定你的范围符号 1..10
是什么意思。数组是从 0 开始索引的。
用户 ID 将按顺序自动为每个新用户生成。那里不需要 "user_id" 字段。
就像Mukul215说的那样,ID会按顺序自动生成。在种子中硬编码 ID 是错误的做法。
在为产品分配随机用户 ID 方面,我不是 100% 了解您的要求。从您对@tadman 回答的评论来看,您似乎只希望产品属于每个用户。为什么不做这样的事情:
10.times do |n|
name = Faker::Name.name
job = Faker::Company.name
User.create!(name: name, job: job)
end
User.all.each do |user|
name = "Turkey"
price = Random.rand(42-10) + 10
user.products.create!(name: name, price: price)
end
假设您的用户模型有很多产品,并且一个产品属于一个应该得到您想要的结果的用户。
user.products
会在发送build
或create
[=时自动将user.id
分配给user_id
字段到product
记录17=]