Raylar bir veritabanı tohum için en iyi yolu nedir?
Benim raylar app bazı ilk veri dolduran komisyon bir görev var. Örneğin, ülkeler, eyaletler, mobil taşıyıcılar, vb.
Bende öyle kurmak /dosyalar ifadeleri oluşturmak db/Fikstür bir grup ve onları işleyen komisyon bir görev var. Örneğin, ben bir model temalar. Bir tema var./rb dosyası bu gibi görünüyor/demirbaş db:
Theme.delete_all
Theme.create(:id => 1, :name=>'Lite', :background_color=>'0xC7FFD5', :title_text_color=>'0x222222',
:component_theme_color=>'0x001277', :carrier_select_color=>'0x7683FF', :label_text_color=>'0x000000',
:join_upper_gradient=>'0x6FAEFF', :join_lower_gradient=>'0x000000', :join_text_color=>'0xFFFFFF',
:cancel_link_color=>'0x001277', :border_color=>'0x888888', :carrier_text_color=>'0x000000', :public => true)
Theme.create(:id => 2, :name=>'Metallic', :background_color=>'0x000000', :title_text_color=>'0x7299FF',
:component_theme_color=>'0xDBF2FF', :carrier_select_color=>'0x000000', :label_text_color=>'0xDBF2FF',
:join_upper_gradient=>'0x2B25FF', :join_lower_gradient=>'0xBEFFAC', :join_text_color=>'0x000000',
:cancel_link_color=>'0xFF7C12', :border_color=>'0x000000', :carrier_text_color=>'0x000000', :public => true)
Theme.create(:id => 3, :name=>'Blues', :background_color=>'0x0060EC', :title_text_color=>'0x000374',
:component_theme_color=>'0x000374', :carrier_select_color=>'0x4357FF', :label_text_color=>'0x000000',
:join_upper_gradient=>'0x4357FF', :join_lower_gradient=>'0xffffff', :join_text_color=>'0x000000',
:cancel_link_color=>'0xffffff', :border_color=>'0x666666', :carrier_text_color=>'0x000000', :public => true)
puts "Success: Theme data loaded"
Burada fikir kullanıcılar ile başlamak için bazı hisse senedi temalar yüklemek istiyorum. Bu yöntem ile ilgili bir sorun var.
KİMLİĞİ ayarı çalışmıyor. Bu demek oluyor ki eğer ben karar veririm Ekle bir tema arayalım 'Kırmızı', sonra ben sadece eklemek istediğiniz temayı ifade etmek için bu Fikstür dosyası ve ara komisyon görev için araştırma veritabanı. Eğer temalar diğer nesneleri ve yeniden başlatma bunun üzerine kimliklerini değiştirmek için ait olduğu için, bunu yaparsam, tüm bağlantılar koptu.
Benim sorum her şeyden önce, bu iyi bir şekilde yerleştiren bir veritabanı işlemek için mi? Bir önceki sonrası, bu bana tavsiye edildi.
Eğer öyleyse, ne kadar zor bir kimlik kodu ve orada herhangi bir etkilerinin miyim?
Tohum için en iyi yolu veritabanı nedir?
Gerçekten uzun takdir edeceğim ve en iyi uygulamaları içeren cevaplar düşünülmüş.
Teşekkür ederim!
CEVAP
Bu cevapları beri güncelleme biraz eski bazıları hala geçerli olsa da).
Basit bir özellik 2.3.4, db/tohum raylar eklendi.rb
Sağlar Yeni komisyon bir görev
rake db:seed
Birleşik Devletleri gibi ortak statik kayıtları yerleştirmek için iyi, vb... ülkeler
http://railscasts.com/episodes/179-seed-data
*Eğer zaten onları da tohum aşağıdaki koyarak db:seed görevi doldurmak için yaratılmış olsaydı armatürleri kullanabilirsiniz.dosya (railscast bölüm) rb:
require 'active_record/fixtures'
Fixtures.create_fixtures("#{Rails.root}/test/fixtures", "operating_systems")
3 Raylar.x':: ActiveRecord' yerine 'Demirbaş' sabit . Fikstür kullanın
require 'active_record/fixtures'
ActiveRecord::Fixtures.create_fixtures("#{Rails.root}/test/fixtures", "fixtures_file_name")
Raylar üzerinde Ruby belirleyici bir y...
Bir nesneyi klonlamak için en etkili y...
C bir Sözlük üzerinde yineleme için en...
JQuery ile bir dizi seçmek için bir se...
Koşullu bir sınıf uygulamak için en iy...