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
Teşekkürler! .map (&: öznitelikleri) tam olarak ne yapar? Googling'i denedim ama anlamama yardımcı olacak bir şeyle gelmedim. – MakeM
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
map (&: öznitelikleri) öznitelikler yöntemini modele çağırın ve bir dizi Sonuç – shingara