Ruby on rails Rails有一个关联似乎不合逻辑,是错误的

Ruby on rails Rails有一个关联似乎不合逻辑,是错误的,ruby-on-rails,associations,Ruby On Rails,Associations,对不起,如果这是显而易见的。我已经使用Rails有一段时间了,但是has__one关联的工作方式仍然让我头疼。只是还没有点击 我正在创建一个专门的表,该表创建满足电子邮件发送所需的特定标准的公司列表,其中包含有关他们是否已通过电子邮件发送以及是否已回复电子邮件的信息 email_responder表中的每个条目都链接到单个公司记录。因此,在我看来,说每个回复者记录都有一个公司是合乎逻辑的 但是,如果我将has_one添加到responder模型,然后使用responder.company,我会收

对不起,如果这是显而易见的。我已经使用Rails有一段时间了,但是has__one关联的工作方式仍然让我头疼。只是还没有点击

我正在创建一个专门的表,该表创建满足电子邮件发送所需的特定标准的公司列表,其中包含有关他们是否已通过电子邮件发送以及是否已回复电子邮件的信息

email_responder表中的每个条目都链接到单个公司记录。因此,在我看来,说每个回复者记录都有一个公司是合乎逻辑的

但是,如果我将has_one添加到responder模型,然后使用responder.company,我会收到一个错误,告诉我需要在公司记录中有一个responder_id字段。这对我来说毫无意义,公司对响应者一无所知。我希望由于响应者有一个公司,所以响应者记录中会有一个公司id,而不是相反。好像是巴斯·阿克沃兹


所以,很明显,我所做的不是Railsy,但除了在响应者模型中加入公司方法之外,我不知道该怎么做。Rails中还有其他我还没有发现的关联类型吗?

听起来你想要一个属于
的关联

email_responder表中的每个条目都链接到一家公司 记录。所以在我看来,每个响应者都会记录 你有一家公司

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

因此,您需要在responders表中添加
company\u id

这个协会就像

class Company < ActiveRecord::Base
  has_many :responders
end

class Responder < ActiveRecord::Base
  belongs_to :company
end
class公司

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

但是如果我在公司模型中添加一个“属于:响应者”,这难道不要求公司记录也有一个响应者id字段吗?似乎两者都有且都属于记录中的一个字段,该字段不应该知道其父字段。没有响应者属于公司,公司只有一个响应者。这需要一个company_id列,但不需要其他内容。我想我现在明白了。我只是简单地将电子邮件应答器模型中的每个公司id设置为唯一的,所以不可能每个公司都有多个应答器。但我想我看到了原因。不过还是觉得有点脏。@jhon,如果一家公司只能有一个响应者,那么您可以在公司模型中使用has_one:responder,在响应者模型中使用belown to:company,我相信您在响应者表中有公司id。谢谢Bachan。它现在起作用了,我想我知道发生了什么。