2010-11-20 15 views
1

Geliştirme sqlite3 veritabanımı test veritabanına aktarmaya çalışıyorum. Bunu yapabilmek için önce modelimi raylar konsoluna aktardım ve bir dosyaya kaydettim.to_yaml dosyası rspec'de düzgün yüklenmiyor (raylar projesi)

> MyModel.all.to_yaml # this was saved to mymodels.yml 

Şimdi mymodels.yml ayrıştırmak çalışırken başarısız RSpec çalıştırdığınızda. Aldığım hata:

Failure/Error: Unable to find matching line from backtrace 
a YAML error occurred parsing /Users/MakeM/MyProject1/spec/fixtures/mymodels.yml. 

Please note that YAML must be consistently indented using spaces. Tabs are not allowed. Please have a look at http://www.yaml.org/faq.html The exact error was: NoMethodError: undefined method `keys' for nil:NilClass

Neden bu hatayı alıyorum? Bahsetmem gereken bir şey, to_yaml tarafından çıkarılan yaml'ın bana biraz garip gelmesi.

MyModel.all.map(&:attributes).to_yaml 

Uyarı, bu teknikleri RAM patlayabilir:

--- 
- !ruby/object:MyModel 
    attributes: 
    id: 133 
    book: FirstBook 
    chapters: 50 
    created_at: 2010-10-06 05:03:15.709931 
    updated_at: 2010-10-06 05:03:15.709931 
    abbr: FB 
    attributes_cache: {} 

    changed_attributes: {} 

    destroyed: false 
    marked_for_destruction: false 
    new_record: false 
    previously_changed: {} 

    readonly: false 

cevap

0

Sadece veri değil tüm veriler yararsız veritabanı üzerinde tasarruf kullanmak Yani bu gibi yaml üretmeyi denemek için iyidir: İşte bunun bir parçası Çok fazla veri varsa. Hamlinizi limit/ofset ile oluşturmayı düşünün. veya paginated_each will_paginate ile.

+0

Teşekkürler! .map (&: öznitelikleri) tam olarak ne yapar? Googling'i denedim ama anlamama yardımcı olacak bir şeyle gelmedim. – MakeM

+0

Bu da işe yaramıyor. "Hata/Hata: backtrace için hatalı veri ..." hatasıyla eşleşen satır bulunamıyor. Her ne kadar yaml, neye benzemesi gerektiğine çok daha yakın görünüyor. – MakeM

+0

map (&: öznitelikleri) öznitelikler yöntemini modele çağırın ve bir dizi Sonuç – shingara

İlgili konular