我正在使用一个关联名称数组,并且我想执行连接来构建一个 ActiveRecord::Relation 对象。我想做类似以下的事情:
association_names = %w(assoc1 assoc2 assoc3 ... assocN)
my_relation = MyModel.where(nil)
association_names.each{|name| my_relation = my_relation.joins(name.to_sym) }
但这会导致错误消息:
ActiveRecord::ConfigurationError: 未找到名为“assoc2”的关联;也许你拼错了?
复杂之处在于这些关联并非都直接加入到MyModel
; 而是MyModel
与 相关联:assoc1
,并且与Assoc1
相关联:assoc2
,并且Assoc2
与:assoc3
等相关联。
我应该做些什么?