【问题标题】:Set Rules in Seeds.rb in Rails在 Rails 中的 Seeds.rb 中设置规则
【发布时间】:2015-12-09 02:31:11
【问题描述】:

全部。我目前正在使用 faker gem 在 Rails 中添加我的 seeds.rb 文件。我想知道:你如何让假数据遵循我想要的“规则”?

我正在构建一个篮球统计应用程序。我希望seeds 中的stat 创建300 组统计数据,其中我在stat 模型中设置的所有标准都是正确的。目前,300 组数据中只有 7-9 组最终被创建。有没有办法让seeds 忽略不工作的模型并制作 300 个可以工作的模型?

例如,我希望投篮命中率(我的数据库中的fga)大于或等于投篮命中率(fg)。 (我在模型中设置了这个“规则”。)当我在种子文件中执行此操作时:

# 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 将遵循它? (我的模型还有其他一些规则,否则我只会设置不同的假数字。)

谢谢

【问题讨论】:

    标签: ruby-on-rails seeding faker


    【解决方案1】:
    until Stat.count >= 300 do
      Stat.create(
        fg: Faker::Number.between(0, 15),
        fga: Faker::Number.between(0, 20)
        # more stats below
      )
    end
    

    【讨论】:

    • 从没想过我会感谢疯牛,但谢谢@madcow!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-23
    • 2019-06-03
    • 2023-03-16
    • 1970-01-01
    • 2014-07-24
    相关资源
    最近更新 更多