Ruby on rails rails:rake填充数据
我有很多有标签的用户,还有很多有标签的帖子 我想在运行rake db:populate时自动填充数据库。这是我在lib/tasks下的代码:Ruby on rails rails:rake填充数据,ruby-on-rails,Ruby On Rails,我有很多有标签的用户,还有很多有标签的帖子 我想在运行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.ea
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
但是,问题是UseSR和Post不共享相同的标记,因为每次都会创建一个新标记。有没有办法通过ID引用以前创建的标记,这样我就不会每次都创建新标记?您的micropost是否与用户关联?如果是这样,则使用该关联为两者设置标记 如果没有,请重新组合代码,生成一个标记,然后将同一标记与用户和micropost关联。
或者首先标记您的用户,然后遍历用户并将用户标记放在MicroPost上。我想我会使用以下内容:
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
这正是你需要的吗?这是演示/测试数据,对吗?您是否尝试在第二个循环中查找或创建而不是创建?不确定我是否理解您的应用程序的结构。用户为micropost创建标记?正确吗?与用户关联的标签与与与帖子关联的标签不同。用户的标签类似于“技能”,而标签只是帖子的标签