我有一张表格,用户可以使用多种不同组合方式过滤。由于我从用户那里得到的所有输入数据,因此我必须从 SQL 中避开用户数据,这导致我现在面临的问题。我有两个基于发送到动作的参数动态构建的阵列,一个阵列包含SQL 条款,另一个阵列包含要与它匹配的数值。例如...
def results
sql_clauses = Array.new
sql_args = Array.new
unless params[:elapsed_time].nil?
sql_clauses << "elapsed_time = ?"
sql_args << params[:elaped_time]
end
unless params[:age_greater_than].nil?
sql_clauses << "age > ?"
sql_args << params[:age_greater_than]
end
.....
@results = Model.where(sql_clauses.join(" and "), sql_args.join(", "))
end
将 sql_ clauses 阵列发送到方法没有问题的地方。 但是它在第二个参数上弹出, 因为它返回一个字符串, 并且它期待每个“ ” 字段的对应变量。 这些字段出现在 sql_ clauses 阵列中。 我尝试了 KandadaBoggu 在 < a href=> https:// stackoverflow.com/ questions/32551919/ combine- arrays- in- trains- in- rayss- in- raiders > > Comine 条件阵列 < / a > 。 这些选项对我都没有用, 但可能是因为我用了两个阵列而不是 1 。
有人知道我的问题有解决办法吗?