种子数据库,每个用户都有数据

时间:2016-06-29 13:51:26

标签: ruby-on-rails

我正在尝试找出为每个用户填充数据库的最佳方法。我的最终目标是让每个user has_many goals人在创建用户时拥有预先填充的goals列表。我在播种时看到的问题是,这只会为每个用户创建一组目标来“共享”,而不是为具有相同初始数据的每个用户创建一组单独的目标。

这是我目前的布局:

weekly_goals表

user_id
title
status

User.rb

has_many :weekly_goals

WeeklyGoal.rb

belongs_to :user

#List of all goals hardcoded in

我是否用错误的思维过程来解决这个问题?有没有更好的方法来做我要问的事情?谢谢!

1 个答案:

答案 0 :(得分:1)

goals = ['goal1', 'goal2', 'goal3', 'gaol4', 'goal5', 'goal6', 'goal7' ]

['user1', 'user2', 'user3'].each do |usr|
   user = User.create(name: usr)
   7.times do 
     user.weekly_goals.create(name: goals.sample)
   end
end

在这里我占用了3个用户,我为每个用户创建了7个目标,在创建每周目标时,我采用了随机目标,因此每个用户都有不同的目标。

另一种解决方案是您可以使用faker gem来填充dumm