私はクエリを作成していますが、クエリに使用するモデルに送信するパラメータを渡す必要があります。問題は、クエリがパラメータを受け入れることができないことです選択中に、これは私のクエリです:クエリを選択する際にパラメータを渡す
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
あなたの文に '{'、 '}'があります。それが、あなたが 'ハッシュ'を持っていると思う原因です。もう1つのことは、 '?'(データを置き換えるために)を持っていないということです。 –
@AlejandroMontilla、答えがありがとう、そうです、記号 "?"私はそれを括弧の中の変数に置き換えています。例えば、 ".where"の他のクエリでは、それは私のように動作します – luis31
@ luis31、select( "sqlstatement ...."、rutaId:params [:search]、fechaDia0:params [:fechaDia0])作業。また、http://api.rubyonrails.org/classes/ActiveRecord/Sanitization/ClassMethods.html –