Faker gem: Как установить макс. длина/диапазон соотв. Компания.название/номер.номер?

Я использую гем Faker для заполнения определенных данных. Как установить макс. длина для поддельного Company.name, и как я могу установить диапазон для поддельного номера?

name  = Faker::Company.name

Здесь я хотел бы указать максимальную длину, так как имя имеет ограничение модели для макс. 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 под свои нужды?


person Nick    schedule 17.05.2015    source источник


Ответы (3)


Для имени можно просто отрезать лишние части от сгенерированного (вам там не до слов-полуфабрикатов, да?)

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

И для номера вы можете использовать Faker::Number.between или напрямую использовать core ruby ​​rand.

rand(1..50)
person Sergio Tulentsev    schedule 17.05.2015

  1. вы можете переопределить данные с помощью I18n и добавить свои собственные имена с короткой длиной:

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

person Shalev Shalit    schedule 17.05.2015

Вы можете использовать

Faker::Lorem.words(50);

Он вернет 50 слов
https://github.com/Marak/faker.js/wiki/Basic-Random-Data

person Oleg Borodko    schedule 02.05.2017