如何在方法中创建动态连接语句?

Joe*_*nas 1 ruby activerecord ruby-on-rails

我有一组我需要加入的表格:

tables = ["users","cars"]
Run Code Online (Sandbox Code Playgroud)

但是,我正在尝试加入这些:

joins(:users,:cars)
Run Code Online (Sandbox Code Playgroud)

代码无效.在我的模型中,我有一个定义,我传入表中:

def conditions(tables)
    joins(tables.map { |t| t.to_sym }.join(","))
end
Run Code Online (Sandbox Code Playgroud)

Zac*_*emp 5

这种方法对于splat运算符来说是一个很好的选择.

.joins接受一个未定义数量的参数,所以你需要的是一种将数组解构为参数的方法..join(",")将它变成一个字符串,这不是它所期望的.但是,这个:joins(*tables.map(&:to_sym))应该做的伎俩.