2010-12-02 11 views
1

J'envoie un tableau de jquery via les requêtes d'URL au contrôleur de rails.Rails 3 où requête

quand je le fais dans mon contrôleur

log_array = (params[:log_ids]) 
logger.debug "This is the array #{log_array.to_a}" 

Je reçois dans mon journal du serveur

This is the array 85,84,83,82 

Je suis en train cette requête pour obtenir tous les journaux sélectionnés:

@logs = Log.where(['"logs"."id" IN (?)', log_array]) 

Je reçois ceci sur le journal du serveur

SELECT "logs".* FROM "logs" WHERE ("logs"."id" IN ('85,84,83,82')) 

Sould Il comme ça

SELECT "logs".* FROM "logs" WHERE ("logs"."id" IN (85,84,83,82)) 

Il semble que cela met le Arry en comme une chaîne.

Y a-t-il un moyen de rendre le sql correct pour un tableau?

+0

Est-il possible que: log_ids sont définies comme des chaînes? Si oui, je me demande si vous devez appeler to_i sur eux. Bien, Bowsersenior a la meilleure réponse. –

Répondre

3

Ou Log.where (: id => params [: log_ids]) si vous voulez utiliser où() bonté.

4

Vous créez des choses trop SQL. Essayez ceci:

Log.find_all(params[:log_ids]) 
+0

J'ai oublié de dire. Cela ne fonctionne pas. Il renvoie uniquement la première instance du tableau. –

+0

Désolé, la méthode correcte est 'find_all', pas' find'. S'il vous plaît voir la réponse mise à jour. – bowsersenior