我做我的軌道模型的一些簡單的sql語句(用於純粹主義者這僅僅是複雜的sql語句:)導軌 - 逃避SQL PARAMS
因爲我沒有使用find * /病症的方法,是有一個輔助方法我可以直接用它來做到這一點?
我做我的軌道模型的一些簡單的sql語句(用於純粹主義者這僅僅是複雜的sql語句:)導軌 - 逃避SQL PARAMS
因爲我沒有使用find * /病症的方法,是有一個輔助方法我可以直接用它來做到這一點?
連接對象上的quote
方法轉義字符串。在構建查詢時,使用sanitize_sql_for_conditions
將ActiveRecord條件散列或數組轉換爲SQL WHERE子句。
ActiveRecord::ConnectionAdapters::DatabaseStatements
中的方法適用於直接查詢,特別是以select_
開頭的方法。
Rails在內部使用sanitize_sql_for_conditions
來處理佔位符。當然,這種方法是受保護的,所以你不能(乾淨地)在ActiveRecord模型之外使用它。你可以繞過保護使用send
:
escaped_string = Model.send(:sanitize_sql_for_conditions, [
'id = ? and name = ?',
params[:id], params[:name]
]
)
是在我的模型中我正在做connection.select_all(sql)。但我無法找到rdoc中的連接對象的「引用」方法,以避免我的輸入參數在哪裏條件。 – kapso 2010-07-21 22:39:18
好的,我明白了,謝謝! – kapso 2010-07-21 23:54:16
'sanitize_sql_for_conditions'似乎被移動到一個模塊並設置爲私有。 – lulalala 2012-04-17 08:53:51