, ben aboneleri sadece bir katma sahip kullanıcılar her şeyi miras yapacak nasıl, sadece bir e-posta ve web sitesi alanı var aboneye sahip sadece normal kullanıcılara demek alan?Raylar modeli devralma
cevap
Sen tüm alanları içeren bir tablo oluşturmak, hem de bir tür sütun belirtmek gerekir. yani
create_table :users do |t|
t.string :email
t.string :website
t.string :type
end
Sonra Kullanıcılar modelden herşeyi devralır
Class User < ActiveRecord::Base
Class Subscriber < User
Bir abone gibi sınıflar olabilir. Tür sütunu var, böylece farklı modellerden ayırt edebilirsiniz. Yalnızca 'type' sütunu kullanabilirsiniz olmasaydı o da çok kullanıcıları bulmak gibi aboneleri, alacak
Subscriber.all
kullanarak Mesela.
Alex Reisner tarafından bağlantıda açıklanmaktadır single table inheritance, istiyorum. STI, bir temel modelden numaralı modeli birden fazla modeli temsil etmek için tek bir tablo kullanır. Rails dünyasında, veritabanı şemasının, satır tarafından temsil edilen modelin türünü belirten bir sütunu vardır. Bir veritabanı göç type
adlı bir sütun ekleme Raylar veri modelindeki adını (class method 'inheritance_column' bakınız) belirtirseniz sütun keyfi bir ad olabilir, ancak tablo, STI kullanır sonucuna sahiptir. Bu, type
'u ayrılmış bir sözcük haline getirdiğini unutmayın.
numaralı sütunda abone bozuk. Sanırım doğru bağlantı [http://www.alexreisner.com/code/single-table-inheritance-in-rails](http://www.alexreisner.com/code/single-table-inheritance-in-rails –
Bu bağlantı soruyu yanıtlayabilirken, cevabın temel kısımlarını buraya dahil etmek ve referans için bağlantı sağlamak daha iyidir. Bağlantılı sayfa değiştiğinde yalnızca bağlantı yanıtları geçersiz olabilir. – Luke
@Luke: "Tek tablo devralma" yanıtı olduğu sürece, bu tam olarak yalnızca bağlantı değil. –
- 1. Codeigniter'da bir modeli devralma
- 2. Django modeli devralma: Mevcut süper sınıf
- 3. Raylar Modellerdeki kalıtım modeli
- 4. Raylar modeli "before_filter"?
- 5. oluşturma Raylar ActiveRecord modeli
- 6. Raylar modeli has_many, ilişkilerin
- 7. Raylar: Tek tablo devralma ile Devise kullanımı
- 8. Modeli kalıtım, Yakut-on-Raylar
- 9. Raylar modeli bir modele veya başka bir
- 10. Uygulama Özet Bankası Modeli Sınıf, Raylar Way ™
- 11. Raylar 3.1, RSpec: test modeli doğrulamaları
- 12. Vim otomatik tamamlama Raylar modeli yöntemleri
- 13. Raylar Tekli Tablo Devralma: Tür alanına yazılan değer nasıl yazılır
- 14. Kırık Raylar Rotalar Tek Masa devralma uyguladıktan sonra
- 15. SSL devralma
- 16. Prototipler ile işlevsel işlevsel devralma
- 17. Android'de stil devralma
- 18. Python özelliği devralma
- 19. statik üye işlevleri devralma
- 20. Operatörler ve devralma
- 21. Python'da Sınıf Devralma
- 22. Özel istisna yanlış devralma
- 23. Benzersiz_ptr'nin devralma ve dynamic_casti
- 24. Yerel nesnelerden devralma
- 25. devralma ve Java
- 26. Sanal devralma nasıl çalışır?
- 27. ACL devralma nerede yönetilir?
- 28. Swift protokolü devralma + delegeler
- 29. SQLAlchemy devralma çalışmıyor
- 30. Java devralma - yapıcılar
OP: Buna "Tek Tablo Kalıtım" veya "STI" denir. Yani Google, ihtiyacınız olduğunda nasıl çalıştığı hakkında daha fazla bilgi için. – Pavling
Konu hakkında biraz araştırma yaptıktan sonra, veriler modellerde farklılık gösterirken bazıları da polimorfik ilişkileri kullanmayı tercih ediyor. Bu, çok sayıda boş alan içeren tek bir tabloya sahip olmayı önler. Bu tren istasyonunu faydalı buldum: http://railscasts.com/episodes/394-sti-and-polymorphic-associations. – rogerkk
Tür sütununda hangi gerçek değer var? –