2

我正在为类做一个 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]} %>
4

3 回答 3

3

使用该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>
于 2014-06-08T20:13:52.980 回答
1

您必须更改表单的操作。像这样的东西

<%= form_for(@model, :url => 'YOURURL',  :method => 'get') do %>
于 2012-12-08T22:45:01.510 回答
1

据我所知,button_to "Back", :back将是一个 javascript 代码,如:javascript:history.back(),所以你应该自己定义返回 url,而不是使用:backUrlHelper的默认值

于 2012-12-09T04:01:33.137 回答