Model oluşturmayı kullanarak oluşturduğunuz modeli nasıl değiştirirsiniz? Örneğin, myModel'in orijinal olarak a, b ve c sütunları vardı, ancak şimdi d sütununu eklemek istiyorum.Raylar: İskele Tarafından Oluşturulan Bir Modelin Değiştirilmesi
cevap
Raylar yukarıdaki 3 ve aşağıdaki kodu kullanımı:
rails generate migration add_fieldname_id_to_tablename fieldname:string
raylar 2 Bu artık çalışmaz ve raylar 3 aşağıdaki hata verir
ruby script/generate migration add_fieldname_to_tablename fieldname:string
:
ruby: Böyle bir dosya veya dizin yok - script/generate (LoadError)
Ben proje kökünden bu çalıştırılır şimdiye kadar bulduğum en iyi cevap:
def self.up
add_column :myModel, :d, :string
end
def self.down
remove_column :myModel, :d
end
:
ruby script/generate migration add_d_column_to_myModel
Sonra gibi bir şey bakmak için db/göç bulunan yeni göç dosyasını düzenlemek
Son adım, görünümlerinizi uygun şekilde güncellemek olacaktır.
Cevap here
Tablo fonksiyonları bu tam olarak ne istediğinizi yapmak kısayol yöntemidir here
Şaşkın - iyi bir cevabınız olsaydı soruyu neden sordunuz? Neden asıl soruda bunu yayınlamıyor ve daha iyi çözümler istiyoruz? – zenazn
Sanırım kendi sorunuzu cevapladınız. Bununla birlikte, söyleyeceğim tek şey, bazı durumlarda model geçişini doğrudan düzenleyebileceğinizdir. Üretimde bir siteniz olduğunda göçler harikadır, ancak devam eden gelişim için DB'yi uçurma ve tekrar başlamanın lüksüne sahipsiniz. –
Kendi sorumu 2 nedenden dolayı cevapladım. Birincisi, bu bulduğum en iyi cevaptı, ama Rails için yeni ve bulamadığım daha iyi bir yol olabileceğini düşündüm. İkincisi, soru StackOverflow'ta yayınlanmadı, bu yüzden eklemeye karar verdim. –
ruby script/generate migration add_fieldname_to_tablename fieldname:string
bulduk. Daha fazla kontrole ihtiyacınız varsa veya eklemek için çok fazla sütununuz varsa, Andrew H'nin cevabı da işe yarayacaktır.
bu, görünümleri de güncelleştirecek mi? – femi
Hayır, görünümleri güncellemez. – cynicalman
Bu, kabul edilen cevap olarak kullanıldı, ancak NeoNMD'nin bu yanıtla ilgili yanıtındaki not nedeniyle bunu değiştirdim. –
- 1. Oluşturulan modelin çoğul halini raylarda değiştirin mi?
- 2. Raylar iskele komutuyla inherited_resources nasıl geçersiz kılınacak?
- 3. Raylar - aşağıdaki oluşturmaya çalışıyorum Başka bir modelin
- 4. Raylar İskele çoğullaşması "cafe" için yanlış
- 5. Raylar: PG_Search ile Act_As_Taggable_On tarafından oluşturulan etiketleri nasıl arayabilirim? (postgresql)
- 6. İskele
- 7. - İskele
- 8. Yabancı bir anahtarın oluşturulan adının Hazırda Bekletme durumunda değiştirilmesi
- 9. Scipy-cluster tarafından oluşturulan Dendrogram,
- 10. İskele parçacığı havuzu embeddend
- 11. Sistem tarafından oluşturulan PDF'yi S3 üzerinde depolayın.
- 12. Dikmelerdeki iskele
- 13. Bir Modelin Boolean Özniteliği Terminalden Nasıl Güncelleştirilir
- 14. Angular2 + Raylar: tarafından İşleme ... olarak */*
- 15. Square Connect API tarafından oluşturulan 'Form', LastPass
- 16. iText tarafından oluşturulan PDF için JUnits oluşturma
- 17. Veri dosyalarını cmake tarafından oluşturulan projelere ekleme
- 18. Barclaycard ePDQ - özel kullanıcı tarafından oluşturulan miktarlar
- 19. Sunucu tarafından oluşturulan örnek ne zaman ölür?
- 20. Wordpress tarafından oluşturulan parolanın şifresi nasıl çözülür
- 21. Vim: vim-plugin tarafından oluşturulan eşleştirmeyi kaldır
- 22. Cython tarafından oluşturulan .so dosyasının konumunu özelleştirme
- 23. SWIG tarafından oluşturulan nesnelerin bellek yönetimi C
- 24. Laravel 5 Paginator tarafından oluşturulan linklerin sorunları
- 25. http başlıklarını tarayıcı tarafından oluşturulan isteklere ayarlayın.
- 26. iCloud: Kullanıcı tarafından oluşturulan dizinlerde nasıl okunur?
- 27. Cocoapods tarafından oluşturulan çalışma alanı kilitlendi
- 28. GCC tarafından oluşturulan asmı nasıl derlerim?
- 29. Arka plana xargs tarafından oluşturulan komutları gönderme
- 30. ng-repeat tarafından oluşturulan angularJS öğelerini taşıma
Teşekkürler, çalışmayan kombinasyonu vurmak güzel olurdu, ancak biraz kafa karıştırıcı olabilir ... Ya da bazı başlıklar olabilir (örneğin Rails <= 2, Rails > = 3). – Wiseman
Teşekkürler Wiseman, bunu hesaba katmak için daha iyi, daha iyi mi? – BookOfGreg
Evet, mükemmel, teşekkürler :) – Wiseman