On 18 May 2011, at 12:01, olivi morel wrote:
> Que fait la méthode #search de Item? (Est-ce celle de Sphinx?)
> je ne comprend pas ta question c'est quoi Sphinx??
Ce n'est pas important pour le moment.
> la méthode search recherche intégralité de mes articles pour me les renvoyés
> dans la vue _search .
Px-tu envoyer le code de cette méthode?
> Pagination
> Pour le Gem de pagination j'utilise kaminari (0.12.4)
>
> Sur quelle méthode pointe ta/tes route(s)?
>
> la méthode search
>
> get "search" => "items#search", :as => "search"
>
> la méthode index
>
> root :to => "items#index", :as => "index"
> resources :items
>
>
> Pourquoi utilises-tu "before_filter" dans ce contexte?
>
> j'utilise before_filter car j ai besoin de rechercher tous les articles pour
> les mettres à jour ,et les voir dans l'index,
>
> je ne devrais pas ??
Le before_filter est conçu pour effectuer certaines opérations avant l'appel à
l'action. C'est assez original d'avoir une action qui est en même temps un
filtre pour une autre action. De plus, lorsque tu appelles index, tu définis
deux fois la variable d'instance @items (une fois dans le filtre et une seconde
fois dans la méthode index). Du coup, la première définition est écrasée et ne
sert à rien.
Un code plus correct serait:
---
before_filter :preprocess_search, :only => [:index, :update, :show, :new]
def index
@items = Item.order("title").page(params[:page]).per(3)
end
def search
@items = @search.all
end
private
def preprocess_search
@search = Item.search(params[:search])
end
---
Mais ça ne réglera pas ton problème. Je pourrai t'en dire plus avec le code de
la méthode search.
Bien à toi,
Jean-Baptiste
>
> Le 18 mai 2011 11:36, Jean-Baptiste Escoyez <[email protected]> a écrit :
> Peux-tu préciser ta question?
>
> - Que fait la méthode #search de Item? (Est-ce celle de Sphinx?)
> - Quel gem de pagination utilises-tu?
> - Sur quelle méthode pointe ta/tes route(s)?
> - Pourquoi utilises-tu "before_filter" dans ce contexte?
>
> On 18 May 2011, at 11:09, olivi morel wrote:
>
>> bonjour
>> je me permet de vous solliciter car je me retrouve devant un probléme que je
>> ne parviens pas à résoudre
>>
>> j ai 2 méthode Search pour rechercher un article et index, quand je
>> commente la ligne N° 10 la méthode search fonctionne correctement par
>> contre la pagination ne s'effectue pas, et quand je commente la méthode
>> search la pagination fonctionne bien .
>>
>>
>>
>> codes:
>>
>>
>> 1 before_filter :search, :only => [:index, :update, :show, :new]
>> 2
>> 3 def search
>> 4 @search = Item.search(params[:search])
>> 5 @items = @search.all
>> 6 end
>> 7
>> 8 def index
>> 9
>> 10 @items = Item.order("title").page(params[:page]).per(3) #
>> permet d'effectuer la pagination
>> 11
>> 12 respond_to do |format|
>> 13 format.html # index_old.html.erb
>> 14 format.xml { render :xml => @items }
>> 15 end
>> 16 end
>>
>>
>>
>> ps : je suis débutant en Rails ainsi que en dev Objet <333.png>
>>
>>
>> --
>> 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]
>
> --
> Jean-Baptiste Escoyez
>
> http://www.clickyourcar.be
> http://twitter.com/jbescoyez
>
>
> --
> 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]
>
>
> --
> 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]
--
Jean-Baptiste Escoyez
http://www.clickyourcar.be
http://twitter.com/jbescoyez
--
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]