0

J'ai un formulaire de recherche pour rechercher des images par leurs étiquettes. La forme fonctionne un peu, il envoie les paramètres à la page/mais il envoie comme ceci:Comment faire un formulaire de recherche avec acts_as_taggable

search_results?utf8=✓&search=squid%2C+color&x=0&y=0 

Et voici ma forme:

<%= form_tag ("/search_results"), :method => "get", :class=>"search_form" do %> 
    <%= text_field_tag ("search"), nil, :class => 'search_input', 
    :onblur=>"if(this.value=='')this.setAttribute('class', 'search_input');", 
    :onfocus=>"this.setAttribute('class', 'search_input_clear');" 
%> 
    <%= image_submit_tag("search.png") %> 
<% end %> 

et et ma route/contrôleur:

match "/search_results/" => "index#search_results", :via => :get, :as =>"search_results" 
class IndexController < ApplicationController 

def search_results 
    @tattoos = Tattoo.tagged_with("%#{params[:search]}%") 
end 

Mais je n'obtiens jamais aucun résultat.

console Rails montre ceci:

Parameters: {"utf8"=>"✓", "search"=>"color, animals", "x"=>"0", "y"=>"0"} 
    SQL (0.5ms) SHOW TABLES 
    ActsAsTaggableOn::Tag Load (0.2ms) SELECT `tags`.* FROM `tags` WHERE (name LIKE '\\%color' OR name LIKE 'animals\\%') 
    SQL (0.1ms) SELECT COUNT(*) FROM `tattoos` WHERE (1 = 0) 
    Tattoo Load (0.3ms) SELECT `tattoos`.* FROM `tattoos` WHERE (1 = 0) ORDER BY tattoos.created_at DESC 
+0

Je ne sais pas encore quelle est la question, bien qu'il semble que vous utilisiez un paramètre" q "dans l'action, mais" search "(bizarrement entre parenthèses?) dans la forme. –

+0

J'essayais de reconstituer cette fonction de recherche à partir du lien que je viens de poster et de l'API de ruby ​​sur text_field_tag ​​ – rugbert

+0

Quel est le problème? On dirait que l'assistant d'étiquette de terrain fait ce qu'il est censé faire. –

Répondre

0

J'ai enlevé le% autour de mes params et qui semblait faire l'affaire:

def search_results @tattoos = Tattoo.tagged_with ("# {params [ : search]} ") fin

Questions connexes