[英]rails: rake populating data
我有很多带有标签的用户,以及很多带有标签的帖子。
我想在运行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引用以前创建的标签,这样我就不会每次都创建新标签?
我想我会使用类似的方法:
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
那您需要什么吗? 是演示/测试数据,对不对?
您的微博是否与用户相关联? 如果是这样,请使用该关联为两者设置标签。
如果没有,请重新组合代码,生成标签,然后将相同标签与用户和微博关联。 或先标记您的用户,然后遍历用户,然后将用户的标签放入微博。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.