2010-02-20 8 views
0

Je travaille sur Ruby on rails 2.3.2 et je voudrais garder le texte de recherche à travers la publication afin que je puisse le remplir après cela.Gardez le texte de recherche à travers la session

À l'heure actuelle, la page de recherche est appelée par une méthode appelée «recherche» sur un contrôleur. Une fois la recherche effectuée, je rends le fichier ainsi:

render :file => '/search/index', :layout => true, :use_full_path => true 

J'aimerais enregistrer la recherche sur une session comme ceci:

session[:text_to_search] = params[:txtSearch]

puis attribuez-lui sa valeur à la zone de texte. La zone de texte est en fait un html input type="text".

Comment puis-je faire cela?

Répondre

1

noter que puisque vous êtes rendu la page plutôt que de rediriger vers une nouvelle page, vous pouvez toujours accéder aux params de dans cette page ...

<%= text_field_tag :txtSearch, params[:txtSearch] %> 

devrait fonctionner.

si vous insistez sur l'utilisation de la session alors:

<%= text_field_tag :txtSearch, session[:text_to_search] %> 
+0

Merci. J'ai un problème cependant. J'ai mis le champ de texte pour montrer du texte s'il est vide, et j'ai aussi défini une valeur par défaut comme "Tapez le texte à rechercher ici". Donc, si je ne le retire pas, il affichera ce texte, pas celui que j'ai cherché. Alors, comment puis-je vérifier si params [: text_to_search] est vide ou non, donc je peux définir sa valeur = "taper le texte à rechercher ..." seulement quand params [: text_to_search] est vide? –

+1

<% = text_field_tag: txtSearch, params [: text_to_search] .blank? ? "Texte par défaut": params [: text_to_search]%> – emh

Questions connexes