find_by_sql中的文本替换技术

时间:2013-03-07 04:26:40

标签: ruby-on-rails activerecord

Rails有一种很好的技术,可以用一个或多个对象替换SQL语句中的?,例如:

User.find_by_sql("select * from users where uid in (?)", [1,2,3])

如何将此技术应用于我自己的自定义查询?我检查了这个和类似方法的源代码,但找不到它。

在我的情况下,我有来自Koala gem的fql_query,它不适合将对象传递给sql查询。我想扩展此方法,以便允许插入动态参数进行查询。

1 个答案:

答案 0 :(得分:0)

您可以使用ActiveRecord::Sanitization中的sanitize_sql_for_conditions为条件子句执行SQL转义。

如果您需要更多的常规清理,可以使用ActiveRecord::ConnectionAdapters::Quoting中的quote