Rails Has_One协会似乎不合逻辑,错误的方式

时间:2014-04-24 06:54:26

标签: ruby-on-rails associations

很抱歉,如果这很明显。我现在已经使用Rails了一段时间,但是has_one关联的工作方式仍然让我头晕目眩。它还没有被点击。

我正在创建一个专门的表格,用于创建符合电子邮件发送所需的特定条件的公司列表,其中包含有关是否已通过电子邮件发送的信息,以及是否已回复电子邮件(或不是。)< / p>

email_responder表中的每个条目都链接到一个公司记录。因此,我说每个响应者记录都有一个公司似乎是合乎逻辑的。

但是,如果我将has_one添加到响应者模型然后使用responder.company我会收到一个错误,告诉我我需要在公司记录中有一个responder_id字段。这对我来说毫无意义,公司对响应者一无所知。我希望由于响应者有一家公司,因此响应者记录中的公司_id不是相反的。这似乎是低音。

所以,显然我所做的并不是Railsy,但除了将公司方法入侵到响应者模型之外,我不知道如何处理它。我还没有发现Rails中的另一种关联类型吗?

2 个答案:

答案 0 :(得分:1)

  

email_responder表中的每个条目都链接到一家公司   记录。所以说每个响应者记录似乎合乎逻辑   has_one公司。

这意味着一家公司可以有多个响应者。

因此,您需要在响应者表中添加company_id列。

这种关联就像

class Company < ActiveRecord::Base
  has_many :responders
end

class Responder < ActiveRecord::Base
  belongs_to :company
end

因此,每个响应者记录都有一个公司,一个公司有多个响应者。

答案 1 :(得分:0)

听起来你想要一个belongs_to关联。