繁体   English   中英

rails:填充数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM