Comment utiliser link_to passer valeur à un champ de recherche et d'exécuter dans RAILS, RoR?

StackOverflow https://stackoverflow.com/questions/4294631

Question

J'ai un champ de recherche et le bouton. Lorsque l'utilisateur recherche quelque chose comme « chat » mon point de vue rend un tas de mots clés connexes tels que « cataire », « jouets pour chats », « chats » etc ... chacun de ces résultats sont des liens, et doivent passer la valeur de la chaîne affichée de nouveau dans la recherche pour générer des résultats pour le lien sélectionné. Par exemple:

  1. L'utilisateur rend la page de recherche et de recherche "chat"
  2. page d'affichage rend les résultats liés à « chat » tels que « cataire » « chatons »
  3. L'utilisateur clique maintenant sur "cataire"
  4. Voir la page rend les résultats liés à « cataire » telles que « l'herbe »

Est-ce possible avec link_to? Je suis perdu et pas tout à fait sûr de quoi faire ...

-

Mon code:

SEARCH VIEW PAGE

<% form for(:search, url => search_path) do |f| %>
Search: <%= f.text_field :search %><br>
<%= f.submit "Search Keyword" %><p>   

<% unless @keywords.nil? %>
  <h3>Keyword Results</h3>
  <% @keywords.each do |k| %>
  <%= link_to k.name, :controller => "search", :action => "keywords", value => k.name %>
<% end %>

SEARCH CONTROLLER

def keywords
  if request.post? then
  @keywords = googlesearchapi(params[:search])
end

Je veux passer la valeur link_to que l'utilisateur clique sur comme le: paramètre de recherche ... Merci à l'avance pour tout conseil ~~

Était-ce utile?

La solution

Tout d'abord, vous voulez que le lien soit: « ../search/keywords?search=catnip », pour ce faire, modifier le link_to comme:

<%= link_to k.name, :controller => "search", :action => "keywords", :search => k.name %>

Ensuite, vous devez supprimer le if request.post? then ligne, sinon il ne traitera pas les demandes provenant de link_to, car il est une requête GET (non POST).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top