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コードになります。したがって、デフォルトのUrlHelperjavascript:history.back()を使用するのではなく、自分でバックURLを定義する必要があります。:back

于 2012-12-09T04:01:33.137 に答える