Ruby on rails 4 如何将多态模型与另一个模型关联

Ruby on rails 4 如何将多态模型与另一个模型关联,ruby-on-rails-4,polymorphic-associations,Ruby On Rails 4,Polymorphic Associations,我有两个基本模型: class Case < ActiveRecord::Base has_many :contacts end class Contact < ActiveRecord::Base belongs_to :case belongs_to :contactable, :polymorphic => true, :foreign_key => :contactable_id end 我也有相当多的模型是接触模型的子类型: class Attorne

我有两个基本模型:

class Case < ActiveRecord::Base
 has_many :contacts
end

class Contact < ActiveRecord::Base
 belongs_to :case
 belongs_to :contactable, :polymorphic => true, :foreign_key => :contactable_id
end
我也有相当多的模型是接触模型的子类型:

class Attorney < ActiveRecord::Base
 has_one :contact, as: :contactable, dependent: :destroy

 accepts_nested_attributes_for :contact
end


class Client < ActiveRecord::Base
 has_one :contact, as: :contactable, dependent: :destroy

 accepts_nested_attributes_for :contact
end
我使用多态关联而不是STI,因为我不想用一个表来存储所有字段,这可能会变得有点慢和难以承受

我想知道案例模型中的has_许多:联系人线路是否正确。我尝试在我的控制台中使用它,但它并没有像我预期的那样工作。我错过什么了吗


我基本上想要一个关联,一个案例可以有很多联系人,一个联系人可以属于很多案例。联系人可以是任何类型的律师、客户或联系人。我希望这件事能像case一样简单很多:联系人

你忘了a:at属于case。在你的代码中是这样的,还是只是问题中的一个输入错误?问题中的输入错误你希望能够有很多联系人,属于很多情况。这是一种多对多的关系。现在你已经写了一个一对多的关系。你想要的是一个有很多。。通过关系。看,我只是把联系人模型当作其他模型吗?我可以用它来做很多事情:通过协会来代替我原本打算做的habtm。我只是想知道,既然接触是一个多态模型,我是否需要做任何不同的事情。您必须在案例和联系人之间创建“链接表”。可能是包含案例id和联系人id的案例联系人。