我有很多有标签的用户,以及很多有标签的帖子。
我想在运行rake db:populate时自动填充我的数据库。这是我在lib / tasks下的代码:
def make_tags
User.all.each do |user|
5.times do |n|
name = Faker::Company.bs
user.tags.create!(:name => name)
end
end
Micropost.all.each do |micropost|
3.times do |n|
name = Faker::Company.bs
micropost.tags.create!(:name => name)
end
end
但问题是,使用者和帖子不共享相同的标签,因为每次都会创建一个新标签。有没有办法通过它们的ID引用以前创建的标签,这样我每次都不会创建新的标签?
答案 0 :(得分:1)
我想我会使用类似的东西:
User.all.each do |user|
5.times do |n|
name = Faker::Company.bs
micropost = Micropost.find(:first, :offset => rand(Micropost.count))
user.tags.create!(:name => name, :micropost => micropost)
end
end
这样做你需要什么?这是演示/测试数据,对吧?
答案 1 :(得分:0)
您的微博是否与用户相关联?如果是,请使用该关联为两者设置标记。
如果没有,请重新组合代码,生成标记,然后将相同的标记关联到用户和微博。 或者首先标记您的用户,然后遍历用户并将用户的标记放入微博。