Lon*_*Guy 4 ruby rubygems ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1
使用faker用假用户填充我的数据库,我有一个验证规则,确保用户名是唯一的,不能多次注册.
当我运行rake db:populate它永远不会达到1000它会在它到达之前的某个时间停止并且因为我正在使用create!它向我展示了我需要查看的内容:Usernname已经注册.
我的问题是,有一种方法可以在用户名中添加一个数字,每次它都会在数字增加时回来吗?这样,没有用户名将是相同的.
例如
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
Run Code Online (Sandbox Code Playgroud)
亲切的问候
Mic*_*ley 10
您可以为循环添加索引.
1000.times do |n|
username = Faker::Internet.user_name
username = "#{username}_#{n}"
...
end
Run Code Online (Sandbox Code Playgroud)
这对我有用。但不太清楚为什么“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
Run Code Online (Sandbox Code Playgroud)