3

我使用 Faker gem 来播种某些数据。如何设置最大值。假 Company.name 的长度,如何设置假号码的范围?

name  = Faker::Company.name

在这里我想包括最大长度,因为 name 对 max 有模型限制。40 个字符。

code_id = Faker::Number.number

对于 code_id,我想要一个从 1 到 50 的范围。我试过code_id = Faker::Number.number(from=1, to=50)了,但这似乎不正确,因为在播种时会产生以下错误:

ArgumentError: wrong number of arguments (2 for 1)
/usr/local/rvm/gems/ruby-2.1.5/gems/faker-1.4.3/lib/faker/number.rb:4:in 'number'

我应该如何调整 Faker 以适应我的需求?

4

3 回答 3

7

对于名称,您可以将生成的多余部分剪掉(您不在乎那里的半成品词,对吗?)

name = Faker::Company.name[0..40]

对于数字,您可以直接使用Faker::Number.between或使用 core ruby rand​​。

rand(1..50)
于 2015-05-17T19:57:03.583 回答
0
  1. 您可以使用 I18n 覆盖数据并添加您自己的短长度名称:

    faker:
       name:
        short_names: [Ben, Ava...]
    
  2. Faker::Number.between

于 2015-05-17T19:55:59.290 回答
0

您可以使用

Faker::Lorem.words(50);

它将返回 50 个单词
https://github.com/Marak/faker.js/wiki/Basic-Random-Data

于 2017-05-02T20:11:59.460 回答