Raylar - kaçan SQL parametreler
Ben bulmak */koşul yöntemleri kullanarak değilim beri içindir kesinliği için benim raylar modelinde bazı düz SQLs (yapıyorum
, yardımcı bir yöntem olduğunu Bunu yapmak için doğrudan kullanabilir miyim?
Raylar - kaçan SQL parametreler
Ben bulmak */koşul yöntemleri kullanarak değilim beri içindir kesinliği için benim raylar modelinde bazı düz SQLs (yapıyorum
, yardımcı bir yöntem olduğunu Bunu yapmak için doğrudan kullanabilir miyim?
Bağlantı nesnesindeki quote
yönteminin dizeleri kaçmasına neden olur. Sorgular oluştururken, ActiveRecord koşul karmalarını veya dizilerini SQL WHERE yan tümcesine dönüştürmek için sanitize_sql_for_conditions
kullanın.
ActiveRecord::ConnectionAdapters::DatabaseStatements
'daki yöntemler, özellikle select_
ile başlayanlar için doğrudan sorgular için kullanışlıdır.
Raylar, yer tutucularla ilgili olarak dahili olarak sanitize_sql_for_conditions
'u kullanır. Elbette, bu yöntem korunur, böylece bir ActiveRecord modelinin dışında kullanamazsınız (temiz olarak). Sen send
kullanarak protectedness etrafında alabilirsiniz: my modelinde
escaped_string = Model.send(:sanitize_sql_for_conditions, [
'id = ? and name = ?',
params[:id], params[:name]
]
)
evet ben connection.select_all (sql) yapıyorum. Ama rdoc'ta bağlantı nesnesi üzerinde "alıntı" yöntemini, giriş koşullarından kaçtığım için giriş paramlarından kaçamıyorum. – kapso
Tamam, anladım, teşekkürler! – kapso
'sanitize_sql_for_conditions' bir modüle taşınmış ve özel olarak ayarlanmış gibi görünüyor. – lulalala