Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.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中设置自引用多态关系?_Ruby On Rails_Ruby On Rails 3_Polymorphism - Fatal编程技术网

Ruby on rails 如何在rails中设置自引用多态关系?

Ruby on rails 如何在rails中设置自引用多态关系?,ruby-on-rails,ruby-on-rails-3,polymorphism,Ruby On Rails,Ruby On Rails 3,Polymorphism,我有三个模型 用户 Journal Post 关于这些,我们可以假设一些事情 用户拥有多个:日志 Journal有很多帖子 我希望用户能够订阅我网站上的其他用户和特定期刊 我想我需要一个类似这样的多态订阅模型 class CreateSubscriptions < ActiveRecord::Migration def change create_table :subscriptions do |t| t.integer :user_id t.r

我有三个模型

  • 用户
  • Journal
  • Post
关于这些,我们可以假设一些事情

  • 用户拥有多个:日志
  • Journal有很多帖子
我希望用户能够订阅我网站上的其他用户和特定期刊

我想我需要一个类似这样的多态
订阅
模型

class CreateSubscriptions < ActiveRecord::Migration
  def change
    create_table :subscriptions do |t|
      t.integer :user_id
      t.references :subscribable, :polymorphic=>true
      t.timestamps
    end
  end
end
class CreateSubscriptionstrue
t、 时间戳
结束
结束
结束
但我被困在这里了。我不知道如何在我的
User
模型中设置多态关系

我希望能够得到以下东西:
  • @user.wasted_用户
  • @user.wasted_日志
  • @user.followers
  • @journal.followers
有人能帮忙吗?文档在这方面有点稀疏,我知道这些可能是一个真正的家务设置


^_^

虽然我理解用户只想订阅任意对象的愿望,但实际上,您最终会以不同的方式处理这些不同的订阅,所以至少现在(直到您发现自己想要订阅站点上的其他对象),只需将它们分开(YAGNI)


可以通过每个关系的简单联接表来实现这一点。关于的答案引出了

中的一个很好的例子,rails指南非常清楚如何做到这一点,请注意,它只解释了部分问题,没有提到多态和自引用(自连接)的关系。