Nicolas :
> Débutant sur rails, je suis en train de faire quelques tests pour voir
> si je peux l'utiliser pour refaire un de mes sites qui est en php, et
> je dois avouer que malgré l'aide du livre ruby on rails chez Eyrolles
> et la lecture des forums, je n'arrive pas à faire marcher la
> pagination quand je fais une recherche avec condition, puisque la
> première page est bien affichée mais ensuite pour les pages suivantes
> soit cela afficje l'ensemble de ma table soit ça affiche n'importe
> quoi.
> Je vous explique un peu plus en détail ce que j'ai fais.
>
> 1- fort de mes lectures et constatant que la pagination standard
> allait disparaitre ,
Il ne disparaît pas, il est enlevé de Core et est toujours disponible
sous la forme du plugin classic_pagination si on souhaite l'utiliser.
> j'ai installé le plugin paginating_find
>
> 2- dans mon modèle (recette.rb) j'ai défini ma fonction de recherche
> avec condition et pagination
> def self.find_recette_by_name(search_string)
> find(:all, :conditions => ['name LIKE ?', "%#{search_string}
> %"], :page => {:size => 10})
> end
Sans aller plus loin dans tous les détails que tu as exposées,
je m'arrête déjà là.
Ton finder n'utilise pas le paramètre :current, ce qui fait que
par défaut il te retourne la première page. Ta méthode doit
avoir au moins deux arguments, la chaîne de recherche et
le numéro de la page demandée (avec 1 comme valeur par défaut).
Tu peux écrire des tests unitaires pour vérifier le comportement
de ta méthode. De plus, tu peux mettre un 'guard' qui t'avertit
si search_string est une chaîne vide (car dans ce cas là le
critère sur name ne sert à rien).
À mon avis, si tu règles déjà ceci, ça te permet de partir
sur de bonnes bases (et étudier l'utilisation de params[:page]
par la suite).
Après, il y a peut-être un pb dans le code de ta vue, mais
faut d'abord être sûr que le point de départ (le modèle)
est correct.
> Merci par avance de votre aide et désoler de ce long post.
La question était bien posée avec beaucoup d'éléments, ce
qui est loin d'être le cas de la majorité des questions posées sur
la liste.
-- Jean-François.
--
Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org )
--~--~---------~--~----~------------~-------~--~----~
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]
-~----------~----~----~----~------~----~------~--~---