robię jakieś zwykłe zapytania SQL w moim modelu poręcze (dla purystów jest to tylko dla złożonych zapytania SQL :)Rails - uchodzące SQL params
Ponieważ nie używam metody find */stan, czy istnieje sposób, że pomocnik Czy mogę tego użyć bezpośrednio?
robię jakieś zwykłe zapytania SQL w moim modelu poręcze (dla purystów jest to tylko dla złożonych zapytania SQL :)Rails - uchodzące SQL params
Ponieważ nie używam metody find */stan, czy istnieje sposób, że pomocnik Czy mogę tego użyć bezpośrednio?
Metoda quote
na obiekcie połączenia powoduje usunięcie ciągów. Podczas budowania zapytań należy użyć sanitize_sql_for_conditions
, aby przekonwertować skróty lub tablice warunków ActiveRecord do klauzul WHERE SQL.
Metody dostępne pod ActiveRecord::ConnectionAdapters::DatabaseStatements
są przydatne w przypadku zapytań bezpośrednich, w szczególności tych rozpoczynających się od select_
.
Wewnętrznie używane szyny do obsługi obiektów zastępczych. Oczywiście ta metoda jest chroniona, więc nie możesz jej (czysto) używać poza modelem ActiveRecord. Możesz obejść ochronę używając send
:
escaped_string = Model.send(:sanitize_sql_for_conditions, [
'id = ? and name = ?',
params[:id], params[:name]
]
)
Tak w moim modelu robię connection.select_all (sql). Ale nie mogę znaleźć metody "quote" na obiekcie połączenia w rdoc dla ucieczki z moich parametrów wejściowych dla warunków. – kapso
OK, mam to, dzięki! – kapso
'sanitize_sql_for_conditions' wydaje się być przeniesiony do modułu i ustawiony na prywatny. – lulalala