2010-06-04 6 views
1

Comment puis-je créer une case à cocher qui stocke un hachage, de sorte que lorsque je récupère la valeur dans le tableau params, je reçois un hachage.rails forme case à cocher tableau/valeur de hachage

+0

Ah, désolé, je suis un peu nouveau, je ne savais pas que cette fonctionnalité était disponible. Ça ira! – badnaam

Répondre

1

Dans votre contrôleur @hash = [your hash code]

À votre avis: <% check_box_tag 'name', @hash %>

Utilisez les autres aides de vue si vous voulez le faire partie d'une forme http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#M002256 et http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html

EDIT: Sur la base des commentaires ci-dessous

Vous devrez faire les choses un peu différemment. Construisez votre case à cocher comme ceci: <%= check_box :search, "conditions", {:onclick => "refreshResults(this);"}, "#{result.to_s}=#{option.to_s}" %>

Cela produira des cases à cocher où value="city=blah blah", lorsque vous traitez ce dans des rails font:

search = {} 
conditions.each do |c| 
    c.split('=').each{|k,v| search[k] = v} 
end 

Vous pouvez alors utiliser votre hachage de recherche pour filtrer.

+0

bien quand je fais cela .. <% result.each faire | résultat, result_options |%> <% result_options.each faire, compter | %> <% = f.check_box "facette", {result => option}%> <% end %> <%end %> Je reçois .. la valeur est encore 1 – badnaam

+0

Essayez' check_box: search,: facet, {}, hash' Ne pas utiliser f.check_box et faire correspondre: rechercher quelle que soit la partie avant le '[]' dans le nom '' name '' [] "' est –

+0

Merci. Voici ce que j'obtiens De .. <% = check_box: recherche, "conditions", {: onclick => "refreshResults (this);"}, {result => option }%> Au lieu d'un hachage, le {resultat => option} produit article_tagEnergy.In mon contrôleur j'espère obtenir params [: search] [: conditions] = {{articletag => Energy}, {city = > "xxx"}} – badnaam