在 Rails 中 Seeds.rb 中设置规则

Set Rules in Seeds.rb in Rails

全部。我目前正在使用 faker gem 添加到 Rails 中的 seeds.rb 文件。我想知道:你如何让假数据跟随"the rules"我想要的?

我正在构建一个篮球统计应用程序。我希望 seeds 中的 stat 创建 300 组统计数据,其中我在 stat 模型中设置的所有条件都为真。现在,300 组数据中只有 7-9 组最终被创建。有没有办法让 seeds 忽略不起作用的模型并使 300 个起作用?

例如,我希望投篮命中率(fga 在我的数据库中)大于或等于投篮命中率(fg)。 (我在我的模型中设置了这个 "rule"。)当我在我的种子文件中这样做时:

# seeds.rb snippet     
300.times do    
 stat = Stat.create(
        fg: Faker::Number.between(0, 15),
        fga: Faker::Number.between(0, 20)
        # more stats below
 )

如何确保 fga 每次都 >= fg

我是否必须在 seeds 中特别说明 fg 不能大于 fga?或者我是否在我的 stat.rb 模型文件中设置了一个方法并且 Faker 将遵循它? (我的模型还有一些其他规则,否则我会以不同的方式设置假数字。)

谢谢

until Stat.count >= 300 do
  Stat.create(
    fg: Faker::Number.between(0, 15),
    fga: Faker::Number.between(0, 20)
    # more stats below
  )
end