Je repose ma question:
Qd tu fais "Item.search(params[:search])", tu appelles la méthode "search" de 
la classe Item. Ok?
As-tu définis cette méthode toi-même ou bien est-elle définie par une gem (je 
sais juste qu'elle n'est pas définie par Rails)?

Tu peux envoyer le code de la classe Item. On verra tout de suite.


On 18 May 2011, at 14:16, olivi morel wrote:

> voici le code de la vue search
> 
>  <%= stylesheet_link_tag "design" %>
> <%= form_for @search do |f| %>
>    <div id="field-text">
>          <span class="find">
>                   <input id="search-txt"  size="25" 
> name="search[title_contains]" placeholder="recherche"> 
>           </span>
>    </div>
> 
>         <div id= "btSearch">
>               <input id="search_submit" type="image"  
> src="/images/site/header/search.png">
>          </div>
>   <% end %>
> 
> voici le code de la méthode search 
> 
> 3   def search
> 4         @search = Item.search(params[:search])
> 5         @items = @search.all
> 6   end
> 
> 
> Le 18 mai 2011 13:27, Jean-Baptiste Escoyez <[email protected]> a écrit :
> 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]
> 
> 
> -- 
> 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]

Répondre à