rails:rake填充数据

时间:2011-01-23 10:22:48

标签: 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.each do |micropost|
      3.times do |n|
        name = Faker::Company.bs
        micropost.tags.create!(:name => name)
      end
   end  

但问题是,使用者和帖子不共享相同的标签,因为每次都会创建一个新标签。有没有办法通过它们的ID引用以前创建的标签,这样我每次都不会创建新的标签?

2 个答案:

答案 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)

您的微博是否与用户相关联?如果是,请使用该关联为两者设置标记。

如果没有,请重新组合代码,生成标记,然后将相同的标记关联到用户和微博。 或者首先标记您的用户,然后遍历用户并将用户的标记放入微博。