我正在建立一个查询,但我需要传递参数,我要发送到在查询中使用的模型,问题是我不能使查询接受参数内选择,这是我的查询:传递参数在选择查询
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 –