2010-10-01 5 views
0
@user_post = Post.find(:all,:conditions => ["content LIKE ?", "%#{params[:query]}%"]) 

Cette instruction particulière renvoyant la valeur zéro même s'il existe un enregistrement dans la base de données. Où pourrait être le problème?Recherche dans Rails à l'aide de la recherche

S'il vous plaît aidez-moi.

Répondre

0

Avez-vous vérifié que les paramètres sont transmis correctement? Lorsqu'une requête ne renvoie pas les résultats attendus, c'est presque toujours parce que la requête que vous pensez exécuter n'est pas vraiment la requête que vous exécutez. Jetez un oeil à vos fichiers journaux pour vérifier que la requête est correcte.

+0

Oui ... J'ai vérifié le fichier development.log ... qui a la requête exacte comme je m'y attendais ... – vinkris

+0

Processing SearchController # live_search (for 127.0.0.1 at 2010-09-30 22:52:15) [POST] Paramètres: {"authenticity_token" => "Uf0lChFYmx + k2yKlqTpU9umhAz3hVgHdO2CPmJU/JQE =", "query" => "hi"} [4; 36; 1mUtilisateur Load (1.0ms) [0m [0; 1mSELECT * FROM "users" WHERE ("users". "Id" = 3) LIMIT 1 [0m [4; 35; 1mPost Chargement (1.0ms) [0m [0mSELECT * FROM "messages" WHERE (contenu LIKE '% hi%') [0m Rendu recherche/recherche en direct Achevé en 76ms (Vue: 19, DB: 2) | 200 OK [http: // localhost/search/live_search] – vinkris

+0

Dans ce cas, il n'y a que quelques autres possibilités. 1) le dossier que vous pensez y est vraiment pas. 2) Il ne revient pas vraiment à zéro. Comment vérifiez-vous qu'il revient à zéro? Est-ce que cela vous donne des problèmes dans la vue? – sosborn

0

Avez-vous essayé d'exécuter la requête résultante dans la console mysql? Si vous avez un résultat alors maintenez le débogage, l'erreur est quelque part entre l'action du contrôleur et la vue rendue. peut-être que vous chargez le résultat dans before_filter qui n'est pas exécuté pour votre action?

Questions connexes