我有一个小框架,用于根据前端的 json 请求在 Rails (v6.1.7.3) 中动态构建查询。随着用例的不断增长,一般管理起来有点麻烦的一件事是有一种方法来跟踪哪些关联已经加入到给定的查询范围以及用于这些关联的别名(如果适用)
是否有内置机制可用于确定给定关联是否已加入?有没有办法确定协会的别名?
谢谢!
scope = MyModel.where(...)
...
scope.joins!(:assoc)
...
# how to determine if :assoc has already been joined to scope?
有
joins_values
方法。它返回关联数组(符号数组)并以这种方式工作
MyModel.joins(:assoc).where(condition).joins_values
# => [:assoc]
MyModel.where(condition).joins_values
# => []