2015-06-21 94 views
0

我使用Ruby Gems Faker,Populator在我的开发环境中创建虚假用户列表。多种语言的Faker,Populator(英语和俄语)

在我的数据库架构我有如下表

admin_customers 
|- latin_first_name 
|- latin_middle_name 
|- latin_last_name 
|- cyrillic_first_name 
|- cyrillic_middle_name 
|- cyrillic_last_name 

这里是我想如何将数据存储针对每个字段的例子:

latin_first_name = "Viola" 
latin_middle_name = "Lyagushkina" 
latin_last_name = "Georgievna" 
cyrillic_first_name = "Виола" 
cyrillic_middle_name = "Люгашкина" 
cyrillic_last_name = "Георгиевна" 

这是我的populate.rake文件看起来像:

namespace :db do 
    desc "Create 100 customers" 
    task :populate => :environment do 
     require 'populator' 
     require 'faker' 
     Admin::Customer.destroy_all 
     Admin::Customer.populate 100 do |customer| 
     Faker::Config.locale = :ru 
      customer.cyrillic_first_name = Faker::Name.first_name 
      customer.cyrillic_middle_name = Faker::Name.last_name 
      customer.cyrillic_last_name = Faker::Name.last_name 
     Faker::Config.locale = :en 
      customer.latin_first_name = Faker::Name.first_name 
      customer.latin_middle_name = Faker::Name.last_name 
      customer.latin_last_name = Faker::Name.last_name 
     end 
     puts "created 100 users" 
    end 
end 

但是所有的数据都是以拉丁文生成的,你知道如何用Faker和Populator生成多种语言到单个记录?

回答

0

YML文件给出清晰到对于给定的语言可用的命令,语法是正确的。然而,产生西里尔名称所需的命令没有。

Faker::Config.locale = :ru 
    customer.cyrillic_first_name = Faker::Name.male_first_name 
    customer.cyrillic_middle_name = Faker::Name.male_middle_name 
    customer.cyrillic_last_name = Faker::Name.male_last_name