Rails 4.0.0外键用于型号

时间:2016-04-05 12:38:13

标签: ruby-on-rails

两个不同型号的外键是否错误?这是Rails 4.0.0应用程序所以条件是这样写的。我问,因为我遇到了一些眨眼问题而无法找到它。

  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]

1 个答案:

答案 0 :(得分:0)

我会做以下两件事之一:

1 - 每个模型有一个表(所以一个blinks表和一个messages表。

2 - 对每封邮件使用Single Table Inheritance (STI)。您只有一个表(在您的情况下为senders),其中type字段可区分闪烁和消息。

为了简单起见,我个人会选择第一个选项,如果仍然需要,我会在稍后演变为STI。

优势还在于您将能够声明您的关联:

has_many :messages
has_many :blinks