我正在建立一個查詢,但我需要傳遞參數,我要發送到在查詢中使用的模型,問題是我不能使查詢接受參數內選擇,這是我的查詢:傳遞參數在選擇查詢
def self.reporte_inventario_total(params)
query = select("(SELECT Ruta FROM Rutas WHERE IdRutas = :rutaId or :rutaId = '') AS Ruta,
ISNULL((SELECT S.Stock/PP.PzaXCja AS INT FROM stockhistorico S LEFT JOIN ProductosXPzas PP ON S.Articulo=PP.Producto WHERE S.Articulo=Productos.Clave AND S.RutaId = :rutaId or :rutaId = '' AND fecha = :fechaDiaO or :fechaDiaO = ''),0) AS StockCajas,
ISNULL((SELECT S.Stock%PP.PzaXCja AS INT FROM stockhistorico S LEFT JOIN ProductosXPzas PP ON S.Articulo=PP.Producto WHERE S.Articulo=Productos.Clave AND S.RutaId = :rutaId or :rutaId = '' AND fecha = :fechaDiaO or :fechaDiaO = ''),0) AS StockPiezas,
Productos.Clave, Productos.Producto, Productos.CodBarras,Productos.Sector", ({rutaId: params[:search],fechaDiaO: params[:fechaDiaO]}))
end
,這是我得到
unsupported: Hash
你的語句中有'{','}',這就是導致rails認爲你有'Hash'的原因。另一件事是你沒有'?'(用於替換數據)。 –
@AlejandroMontilla,謝謝你的回答,沒錯,標誌「?」我用括號內的變量替換它。例如在「.where」中的其他查詢中,它適用於我這種方式 – luis31
@ luis31,select(「sqlstatement ....」,rutaId:params [:search],fechaDia0:params [:fechaDia0])我認爲工作。你也可以參考http://api.rubyonrails.org/classes/ActiveRecord/Sanitization/ClassMethods.html –