Как я могу остановить faker gem от неудачной проверки уникальности имени пользователя в ruby ​​на рельсах? - PullRequest
4 голосов
/ 23 января 2012

Использование faker для заполнения моей базы данных поддельными пользователями, и у меня есть правило проверки, которое гарантирует, что имена пользователей уникальны и не могут быть зарегистрированы более одного раза.

Когда я запускаю rake db: заполнить, он никогда не достигает1000 он останавливается когда-то до того, как туда добирается, и потому что я использую create!он показывает мне, что мне нужно увидеть: имя пользователя уже зарегистрировано.

Мой вопрос, есть ли способ добавить число к имени пользователя, и каждый раз, когда оно возвращается, число увеличивается?Таким образом, имя пользователя никогда не будет прежним.

например

john1 pete2 sally3 smith4 luke5 john6 sally7

и т. Д.

или есть некоторыеДругой способ убедиться, что имя пользователя не появляется более одного раза?

 namespace :db do
      namespace :development do
        desc "Create user records in the development database."
        task :populate => :environment do
          require 'faker'

          1000.times do

            User.create!(
            :username => Faker::Internet.user_name,
            :email => Faker::Internet.email,
            :password => "greatpasswordhuh"
    )


          end
        end
      end
    end

С уважением

Ответы [ 2 ]

10 голосов
/ 23 января 2012

Вы можете добавить индекс в свой цикл.

1000.times do |n|
  username = Faker::Internet.user_name
  username = "#{username}_#{n}"
  ...
end
2 голосов
/ 23 января 2012

Это сработало для меня.Не совсем уверен, почему "n" создает числа, хотя.

 namespace :db do
        desc "Create user records in the development database."
        task :populate => :environment do
          require 'faker'

          100.times do |n|
            username = "#{Faker::Name.first_name}#{n}"
            User.create!(
              :username => username,
              :email => Faker::Internet.email,
              :password => "greatpasswordhuh"
            )

        end
      end
    end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...