Existe-t-il un moyen de passer des paramètres avec un appel link_to sans qu'il apparaisse sur l'URL? Je fais un simple système de classement par étoiles, et je fais essentiellement de chaque étoile un lien d'image qui transmet sa valeur en tant que paramètre à un nouveau rendu de la même page. Le code d'assistance ressemble à ceci:Comment passer les paramètres cachés dans "link_to"
def stars_generator(edit_mode = false)
@rating = params[:stars].to_i #takes rating from page param, so :star must be defined first!
@stars = Array.new(5) {|i| i+1} #change array size for more stars
output = "<div class = 'star_container'>"
case edit_mode #checks whether to display static stars or clickable stars
when true
@stars.each do |star| #this block generates empty or colored stars depending the value of @rating and the position of the star evaluated
if star <= @rating
output += link_to image_tag('star_rated.png', :mouseover => 'star_hover.png'), review_new_url(:stars => star)
else
output += link_to image_tag('star_empty.png', :mouseover => 'star_hover.png'), review_new_url(:stars => star)
end
end
when false #static stars are displayed if edit_mode is false
@stars.each do |star|
if star <= @rating
output += image_tag('star_rated.png')
else
output += image_tag('star_empty.png')
end
end
end
output += "</div>"
return output
end
Cela fonctionne parfaitement, mais actuellement, le classement par étoiles apparaît comme un paramètre dans l'URL. Idéalement, je voudrais cacher cette information, et j'ai essayé à la fois hidden_field_tag et hidden_tag, qui ne fonctionnent pas. Est-ce qu'il n'y a aucun moyen de le faire ou suis-je complètement Noob?
Hmm, en ajoutant la: méthode =>: post n'a rien fait pour moi, mais je n'ai pas de javascript dans le projet. Y a-t-il un moyen de le faire sans js? – funkymunky
la seule façon d'obtenir des données sur le serveur web sans montrer l'URL est de poster un formulaire. Si vous n'avez pas de framework javascript pour les rails à utiliser, alors 'method:: post' ne fonctionnera pas, et vous devrez construire un formulaire standard, qui publie les champs cachés quand soumis. Vous pouvez avoir une image en tant que bouton de formulaire – maniacalrobot