Raylar uygulamamda bazı ilk verileri dolduran bir komisyon görevim var. Örneğin ülkeler, eyaletler, mobil operatörler vb.
Şimdi kurduğum yol, / db / fikstürler dosyasında bir sürü oluşturma deyimim ve bunları işleyen bir komisyon görevim var. Örneğin, sahip olduğum modellerden biri temalar. / Db / fikstürleri içinde şuna benzeyen bir theme.rb dosyam var:
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"
Buradaki fikir, kullanıcıların başlaması için bazı stok temaları yüklemek istemem. Bu yöntemle ilgili bir sorunum var.
Kimliği ayarlamak çalışmıyor. Bu, bir tema eklemeye karar verirsem, buna 'Kırmızı' diyelim, o zaman bu fikstür dosyasına tema ifadesini eklemek ve veritabanını yeniden beslemek için komisyon görevini çağırmak istediğim anlamına gelir. Bunu yaparsam, temalar diğer nesnelere ait olduğu ve bu yeniden başlatma üzerine kimliklerinin değiştiği için tüm bağlantılar kopar.
Benim sorum her şeyden önce, bu bir veritabanı tohumlama işleminin iyi bir yolu mu? Önceki bir gönderide bu bana tavsiye edilmişti.
Öyleyse, kimlikleri nasıl sabit kodlayabilirim ve bunun herhangi bir dezavantajı var mı?
Değilse, veritabanını başlatmanın en iyi yolu nedir?
En iyi uygulamaları içeren uzun ve düşünülmüş yanıtları gerçekten takdir edeceğim.