Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails多态关联,一个类中有两个assoc类型_Ruby On Rails_Polymorphic Associations_Model Associations - Fatal编程技术网

Ruby on rails Rails多态关联,一个类中有两个assoc类型

Ruby on rails Rails多态关联,一个类中有两个assoc类型,ruby-on-rails,polymorphic-associations,model-associations,Ruby On Rails,Polymorphic Associations,Model Associations,考虑一个类: class Link < ActiveRecord::Base has_many :link_votes, :as => :vote_subject, :class_name => 'Vote' has_many :spam_votes, :as => :vote_subject, :class_name => 'Vote' end class链接:vote\u subject,:class\u name=>'vote' 有很多:垃圾邮件

考虑一个类:

class Link < ActiveRecord::Base

  has_many :link_votes, :as => :vote_subject, :class_name => 'Vote'
  has_many :spam_votes, :as => :vote_subject, :class_name => 'Vote'

end
class链接:vote\u subject,:class\u name=>'vote'
有很多:垃圾邮件投票,:as=>:投票主题,:class\u name=>“投票”
结束

问题是,当我使用
@link.link\u voces添加新投票时,听起来您想要使用单表继承-这将允许您拥有两种不同类型的投票。这将向投票表中添加一个“类型”列,然后您将以LinkVote或SpamVote的身份访问该列

class SpamVote << Vote
  ...
end
对STI做更多的研究,我打赌你会找到答案的

class Link < ActiveRecord::Base

  has_many :link_votes, :as => :vote_subject
  has_many :spam_votes, :as => :vote_subject

end
id, type, vote_subject_type, vote_subject_id, etc.