Pour répondre à ta question initiale, voici le code qui devrait (je ne l'ai pas 
essayé moi-même) résoudre ton problème:

before_filter :preprocess_search, :only => [:index, :update, :show, :new]

def index
  # vide
end

def search
  # vide
end

private

def preprocess_search
  @search = 
Item.order("title").page(params[:page]).per(3).search(params[:search])
  @items = @search.all
end

Cependant, tu peux faire beaucoup plus simple si tu modifies un peu ta vue:

# index.html.erb

<%= stylesheet_link_tag "design" %>

<%= form_for @search, :url => items_path, :html => {:method => :get} do |f| %>
   <div id="field-text">
         <span class="find">
                <%= f.text_field :title_contains, :size => 25, :placeholder => 
"Recherche", :id => "search-txt" %>
          </span>
   </div>

        <div id= "btSearch">
              <input id="search_submit" type="image"  
src="/images/site/header/search.png">
         </div>
  <% end %>

Ton contrôleur devient alors juste:

def index
  @search = 
Item.order("title").page(params[:page]).per(3).search(params[:search])
  @items = @search.all
end

De plus, ton contrôleur est maintenant RESTful (ce qui est conseillé dans les 
bonnes pratiques).

Bonne chance,

Jean-Baptiste

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

> 
> 
> 
> Qd tu fais "Item.search(params[:search])", tu appelles la méthode "search" de 
> la classe Item. Ok?
> 
> oui j 'appel bien la méthode search de la classe Items
>  
> 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)?
>  
> j ai défini cette méthode moi même dans la class Items
> pour qu'il interroge la base j'utilise les gems  'meta_where & meta_search'  
> j'espère avoir bien répondue à t'es questions.
> 
> merci pour tout jean-Baptiste
> 
> 
> -- 
> 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 à