Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 4:2方式有很多:通过多态性_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails Rails 4:2方式有很多:通过多态性

Ruby on rails Rails 4:2方式有很多:通过多态性,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,编辑 我实施了一个似乎有效的解决方案。这有点像黑魔法,我相信它是特定于应用程序的,所以我相信社区在这里发布它是没有用的。不过,如果有人真的想看,我可以这样做 -- 我得到了用户和机构模型,我正试图找出如何建立一个合作关系模型,将用户和机构联系起来,考虑到: 用户可以是代理和其他用户的合作伙伴 代理可以是用户和其他代理的合作伙伴 稍后,我需要能够调用user.partners,并获取此用户的整个用户和代理合作伙伴列表(同样适用于代理) 我试图建立一个有很多通过多态性,但我感到困惑。任何暗示都将

编辑

我实施了一个似乎有效的解决方案。这有点像黑魔法,我相信它是特定于应用程序的,所以我相信社区在这里发布它是没有用的。不过,如果有人真的想看,我可以这样做

--

我得到了
用户
机构
模型,我正试图找出如何建立一个
合作关系
模型,将用户和机构联系起来,考虑到:

  • 用户可以是代理和其他用户的合作伙伴
  • 代理可以是用户和其他代理的合作伙伴
稍后,我需要能够调用
user.partners
,并获取此
用户的整个用户和代理合作伙伴列表(同样适用于
代理


我试图建立一个有很多通过多态性,但我感到困惑。任何暗示都将不胜感激。谢谢

在这个伙伴关系模型中,您可能需要4个字段,这将使我认为不可能使用rails多态行为。将有一个partner_1_id和partner_2_id。然后,您需要为每个partner_type:string或partner_type:integer列确定它将是什么类型的关系

您可以通过在用户/代理模型中使用类似这样的方法来查询

查找partner\u 1\u id或partner\u 2\u id=您的id的所有伙伴关系,以及该伙伴关系的partner\u类型=您的类


编辑:所以基本上,您需要在agency和user类中编写自己的partners方法来创建查询。Rails在这里无法为您做到这一点。

是的,目前这正是我正在做的。我仍然怀疑是否有人能想出更好的解决办法