Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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 渴望加载代理?_Ruby On Rails_Rails Activerecord - Fatal编程技术网

Ruby on rails 渴望加载代理?

Ruby on rails 渴望加载代理?,ruby-on-rails,rails-activerecord,Ruby On Rails,Rails Activerecord,是否可以(通过includes()或类似方式)加载委托关联 当我尝试我希望的显而易见的解决方案时(假设ModelA属于ModelB,而ModelB又属于ModelC): 由于ModelA不知道ModelC,我得到了一个错误 我向ModelA添加了一个代表团: delegate :modelC, to: :modelB, allow_nil: false 这允许类似于: ModelA.first.modelC 但不能解决includes()问题 应该如何做到这一点?如果我正确理解了您的问题,我

是否可以(通过includes()或类似方式)加载委托关联

当我尝试我希望的显而易见的解决方案时(假设ModelA属于ModelB,而ModelB又属于ModelC):

由于ModelA不知道ModelC,我得到了一个错误

我向ModelA添加了一个代表团:

delegate :modelC, to: :modelB, allow_nil: false
这允许类似于:

ModelA.first.modelC
但不能解决includes()问题


应该如何做到这一点?

如果我正确理解了您的问题,我相信您可以使用即时加载

类ModelA
委托:modelC,to::modelB,allow_nil:false
属于:modelB
属于:modelC
结束
B类模型
有很多:modelAs
属于:modelC
结束
C类模型
有很多:模特儿
有很多:modelAs,通过::modelBs
结束
我认为您应该能够做的是(仅供参考,我自己还没有实际运行过此功能):

ModelA.includes(ModelB::ModelC).first.ModelC
有关这方面的一些相关信息,请参见和


我希望这有帮助

你应该使用
has\u many to
not delegate:Modela有许多modelba,Modela有许多ModelC,through:modelbrough:A属于B,B属于C。理想情况下,我希望A属于through,但这是不存在的。
ModelA.first.modelC