我正在为类进行Rails项目,用户可以在其中输入搜索词,显示结果(图像),然后用户可以单击图像以获得更大的版本。
在较大的版本页面上,我有一个button_to:back。
<%= button_to "Back", :back %>
但是当我点击按钮时,它返回的图像结果页面显示默认图像,而不是搜索返回的图像。我需要能够将params [:search_term]传递回上一页(因为没有:search_term值,会返回默认图像)。
我试过了:
<%= button_to "Back", :back, :search_term => params[:search_term] %>
在查看页面源时,看起来它应该传回参数:
<form action="http://localhost:3000/albums/7/add" class="button_to" method="post">
<div>
<input search_term="puppy" type="submit" value="Back" />
<input name="authenticity_token" type="hidden" value="lkjsakvgjwhatever" />
</div></form>
返回真实性令牌,但我的search_term没有。
编辑:
以下是观点:
<%= image_tag("http://farm#{@pic["farm"]}.staticflickr.com/#{@pic["server"]}/#{@pic["id"]}_#{@pic["secret"]}_c.jpg") %>
<br><br>
<%= @pic["title"] %>'
<br><br>
<br><br>
<%= button_to "Back", :back, {:search_term=> params[:search_term]} %>
答案 0 :(得分:2)
使用params
选项将值的哈希值添加为隐藏字段:
= button_to "Back", :back, params: { search_term: params[:search_term] }
将产生:
<form action="/back" class="button_to" method="post">
<div>
<input type="submit" value="Back" />
<input name="authenticity_token" type="hidden" value="uSCQbSaZdbIrTD2Z2FA0FQNe5CF+tK/jViInc1b7Kb0=" />
<input name="search_term" type="hidden" value="whatever" />
</div>
</form>
答案 1 :(得分:1)
您必须更改表单的操作。像这样的东西
<%= form_for(@model, :url => 'YOURURL', :method => 'get') do %>
答案 2 :(得分:1)
据我所知,button_to "Back", :back
类似于:javascript:history.back()
这样的javascript代码,因此您应该自己定义后面的网址,而不是使用UrlHelper的默认:back