2016-04-05 18 views
0

İki farklı model için aynı yabancı anahtarı kullanmak yanlış mı? Rails 4.0.0 uygulaması öyle ki koşullar böyle yazılır. Soruyorum çünkü yanıp sönen bir sorunum var ve bulamıyorum.Raylar 4.0.0 modeller için yabancı anahtar

1 - modeli başına bir tablo (yani bir blinks masa ve bir messages tablo) var:

has_many :messages, :conditions => {:deleted => false, :subject_h => ''} 
    has_many :messages_send, :class_name => "Message", :foreign_key => "sender_id", :conditions => ['deleted_sender = ?', false] 

    has_many :blinks, :conditions => {:deleted => false, :subject_h => ''} 
    has_many :blinks_send, :class_name => "Blink", :foreign_key => "sender_id", :conditions => ['deleted_sender = ?', false] 

cevap

0

İki aşağıdakilerden birini yapardı.

2 - Her mesaj için Single Table Inheritance (STI) kullanın. Göz kırpma ve mesaj arasında ayrım yapabilecek bir type alanıyla tek bir tablonuz (durumda senders) olacaktır.

Burada basitlik için, kişisel olarak ilk seçeneğe gideceğim ve hala gerekiyorsa STI'ye geçeceğim.

avantajı da bu gibi dernek beyan etmek mümkün olacak olurdu:

has_many :messages 
has_many :blinks 
+0

yee ben bu düşündü ama eski uygulamalar var ve sadece tablo yapısı nedir – Wordica

+0

yanıp için yeni bir model yapmak Bu eski uygulama için o zaman? – born4new