Как передать скрытые параметры в "link_to" - PullRequest
3 голосов
/ 17 февраля 2010

Есть ли способ передать параметры с вызовом link_to без его отображения в URL? Я делаю простую систему звездного рейтинга, и я в основном делаю каждую звезду ссылкой на изображение, которая передает свое значение в качестве параметра для нового рендеринга той же страницы. Вспомогательный код выглядит так:

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 

Работает отлично, но в настоящее время звездный рейтинг отображается в качестве параметра в URL. В идеале я бы хотел как-то скрыть эту информацию, и я пробовал и hidden_field_tag, и hidden_tag, но ни одна из них не работает. Нет ли способа сделать это или я просто совершенно нуб?

1 Ответ

0 голосов
/ 17 февраля 2010

вы можете попробовать

link_to image_tag('star_rated.png', :mouseover => 'star_hover.png'), review_new_url(:stars => star), :method => :post

это будет динамически внедрять javascripts, чтобы превратить ссылки в форму и отправить параметры через публикацию

надеюсь, что помогает =)

...