2012-02-07 12 views
5

Veritabanımı, tüm bağımlılıkları (özellikle polimorfizm) hesaba katan modellerim için yeterli sayıda kayıt oluşturan basit bir komut dosyasıyla veritabanımı doldurmaya çalışarak ilk çekimi oluşturdum. Random sınıf bir rastgele terimini üretmesine rağmen bu terim için aynı kalırNasıl Factory Girl ve random_data kullanarak seed.rb ile verileri doğru şekilde randomize edin?

FactoryGirl.define do 
    factory :question do 
    title  "What is the best place to travel in " + Random.country + "?" 
    body  Random.paragraphs(2) 
    association :user, :method => :build 
    end 
end 

:

Bu question fabrikada ist burada, Örnek olarak benim seeds.rb

require 'factory_girl_rails' 

50.times do 

    @user = FactoryGirl.create(:user) 
    FactoryGirl.create(:contact, :user => @user) 

    @question = FactoryGirl.create(:question, :user => @user) 

    FactoryGirl.create(:user_answer, :question => @question, :authorable => @user) 

    @contact = FactoryGirl.create(:contact, :user => @user) 
    FactoryGirl.create(:contact_answer, :question => @question, :authorable => @contact) 

end 

olduğunu tüm örnekler oluşturuldu. Bu durumda, "İspanya'da seyahat etmek için en uygun yer neresi?" ve her biri için metnin özdeş iki paragrafı.

Neyi eksik?

+0

'seeds.rb' sadece veritabanına 'statik' verilerini gerekli eklemeyi için kullanılmalıdır , 'fikstür' değil. Temel verileri oluşturmak için, uygulamayı geliştirme üzerinde manuel olarak test edebilirsiniz, bir komisyon görevi oluşturmalısınız ("db: populate" var) – fuzzyalej

+0

Bunu işaretlediğiniz için teşekkürler. Davranışın değişmesini bekler miydiniz, eğer aynı işi ayrı bir görevde yürütürsem? –

cevap

3

Bu yüzden Random sınıfının buradan nereden geldiğinden emin değilim. Ama bu şeyler için her zaman Faker gem'u kullandım.

Bu isimler, e-postalar, şehirler, telefon numaraları vermez: böyle:

Faker::Name.name 
Faker::Address.uk_country 
Faker::Lorem.paragraph 

bunu kontrol

+0

FYI @Matthew: [Bu, Random sınıfının nereden geldiğini gösterir] (https://github.com/tomharris/random_data). –

İlgili konular