2010-01-18 6 views
2

Je suis coincé une fois de plus ... et une fois de plus, je soupçonne que c'est un problème de syntaxe stupide:rails - passage: params dans url

Je veux passer 2 vaiables dans l'url avec mon formulaire de recherche super simple .

Je me attendais à une URL comme ceci: http://mydomain/categories/search?search=pdf&os=2 Mais je reçois ceci: http://mydomain/categories/search?search=pdf&os[]=

Je pensais que cela devrait fonctionner comme ceci:

<% form_tag search_path, :method => 'get' do %> 
    <%= text_field_tag :search, params[:search] %> 
    <%= hidden_field :os, params[@category.id] %> 
    <%= submit_tag "Search", :name => nil %> 
<% end %> 

... mais bien, il n » t do it ...

Est-ce que quelqu'un sait où je vais mal?

Merci!

Val

Répondre

6

Vous devez modifier la ligne un peu, en utilisant hidden_field_tag:

<%= hidden_field_tag :os, :value => @category.id %> 

Voir la hidden_field_tag documentation pour plus d'informations.

+0

C'est génial! Merci Veger! Je finis par récupérer l'ID via les paramètres [: symbole]: <% = hidden_field_tag: os, params [: id]%> Fonctionne très bien! –

2
<%= hidden_field :os, params[@category.id] %> 

va accéder à une clé dans le hachage params avec @ category.id, est-il une telle clé? On dirait que non, comme son retour nul.

On dirait que vous voulez quelque chose à l'effet de

<%= hidden_field :os, @category.id %> 
+0

Salut micholson! Merci pour la réponse rapide! J'ai essayé cela et il renvoie http: // mydomain/categories/search? Search = pdf & os [2] = (avec 2 étant le bon category.id) Mais cela ne me donne pas accès à la valeur comme. .. http: // mydomain/categories/search? Search = pdf & os = 2 ... n'est-ce pas? Val –

Questions connexes