我正在做手动join
我需要将一个参数传递给它ON
clause:
Foo.joins("LEFT OUTER JOIN bars ON foos.id = bars.foo_id AND bars.baz = #{baz}")
有没有办法通过baz
作为参数,以避免潜在的注入问题?有一个方法sanitize_sql_array
,但我不确定在这种情况下如何使用它。
注意:我不能使用where
因为它不一样。
使用 sanitize_sql_array,这将是:
# Warning: sanitize_sql_array is a protected class method, be aware of that to properly use it in your code
ar = ["LEFT OUTER JOIN bars ON foos.id = bars.foo_id AND bars.baz = %s", baz]
# Within a class method in foo model:
sanitized_sql = sanitize_sql_array(ar)
Foo.joins(sanitized_sql)
尝试了一下,成功了。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)