Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.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_Activerecord - Fatal编程技术网

Ruby on rails Rails:单记录,多多态

Ruby on rails Rails:单记录,多多态,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我相信这有一个更好的标题,所以很抱歉 我有一个验证模型。理想情况下,会有各种其他模型类型能够将自己和单个验证记录相关联。比如说 验证(id:1,可验证类型:'Reference') 参考(id:1,验证id:1) 参考(id:2,验证id:1) 验证(id:2,可验证类型:'Degree') 学位(id:1,验证id:2) 学位(id:2,验证id:2) 我希望能有一个简单的动态:class\u name选项,它位于的has\u many: 类验证{dynamic_class_nam

我相信这有一个更好的标题,所以很抱歉

我有一个
验证
模型。理想情况下,会有各种其他模型类型能够将自己和单个
验证
记录相关联。比如说

  • 验证(id:1,可验证类型:'Reference')
    • 参考(id:1,验证id:1)
    • 参考(id:2,验证id:1)
  • 验证(id:2,可验证类型:'Degree')
    • 学位(id:1,验证id:2)
    • 学位(id:2,验证id:2)
我希望能有一个简单的动态
:class\u name
选项,它位于
的has\u many

类验证{dynamic_class_name}
结束
我99%确信,反向关联实际上是开箱即用的。因此,使用上面的记录,以下内容应该没有问题:

类引用
有什么建议吗?

而不是

 has_many :verifiables, class_name: -> { dynamic_class_name }
换成

 def self.varifiables(type)
   where(verifiable_type: type)
 end

您可以添加更多关于域逻辑的详细信息吗?为什么单个
验证
实例需要引用多个可验证项?您可能最终需要一个与验证和可验证的一对一关联的中间模型-我不认为ActiveRecord提供这种功能。验证对象充当对象的占位符。它可以是
1
,也可以是
4
。应用程序有许多不同的东西可以验证,所有验证都将通过
/verify/:type/:access\u code
处理。