Bonjour,

Je veux executer une requete find_by_sql où j'ai en paramètre (?) le
IN de mySQL. IN que je construit en concaténant les éléments "in".
Malheureusement à l'instanciation Rails a l'ai re rajouter des quotes
là où MySQL n'en veut pas.
Pour être plus clair voici le code.

1- Find by SQL
    @ing_list = Ingredient.find_by_sql(["select
ingredient_recettes.recette_id, ingredients.name,
ingredient_recettes.quantity, unit_qties.name
 from ingredient_recettes, ingredients, unit_qties
  where ingredient_recettes.recette_id in ?
    and ingredients.id = ingredient_recettes.ingredient_id
    and unit_qties.id = ingredient_recettes.unit_qty_id
  order by ingredients.name, unit_qties.name", in_rec])

2- in_rec est construit comme une concaténation
        in_rec = in_rec + recette.id.to_s + ","
pour obtenir un chaine de caractère comme suit : (1,4, 6)

3- l'instanciation donne la requête suivante avec le in_rec entre
quote '(1,4,6)' provoquant une erreur mysql (vu dans le log)
select ingredient_recettes.recette_id, ingredients.name,
ingredient_recettes.quantity, unit_qties.name
 from ingredient_recettes, ingredients, unit_qties
  where ingredient_recettes.recette_id in '(768,25)'
    and ingredients.id = ingredient_recettes.ingredient_id
    and unit_qties.id = ingredient_recettes.unit_qty_id
  order by ingredients.name, unit_qties.name

Avez vous une idée sur la façon de supprimer ces quotes, y a-t-il
quelque chose que je fais mal?

Merci de votre aide

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Répondre à