2016-07-07 10 views
0

ユーザーが場所を選択するフォームがあります。それにはremote: trueとその設定があるので、私は結果をajaxの方法で戻すことができます。戻るボタンを押してもフォームの結果を表示する方法

フォーム

<%= form_for :location, url: get_inventory_path, remote: true do |f| %> 
      <div class="input-field col s12"> 
       <%= f.select :location_id, options_for_select(@locations.collect { |l| 
       [l.station + ', ' + l.venue + ', ' + l.area + ', ' + l.city + ', ' + l.country, l.id] }, 1), {}, { id: 'location_select', class: "browser-default" } %> 
      </div> 
     </div> 
     </div> 
     <div class="card-action center-align"> 
     <%= f.submit "Go", class: "btn blue", data: { disable_with: "Please wait..." } %> 
     </div> 
     <% end %> 

、結果に私は別のページにユーザーをとり、それらの結果を、編集するためのいくつかのボタンを持っている事が、戻るボタンを押して上のフォームの結果はありません。

これらの結果をどのように表示するのか、どういうわけか覚えていますか?

答えて

1

選択ボックスの値に基づいてajaxデータを読み込みます。問題は、このページから別のページにリダイレクトするときに、戻ってくるときにajaxデータを失うことです。

セレクト・ボックスの値が変更されると、データをロードする同じAjaxリクエストを介してセッション内の場所を保存し、このページに戻るときにセッション内でロケーションが設定されているかどうかを確認する方法その場所のデータを表示します。

+0

こんにちは、あなたの答えをありがとう、私はあなたが話しているのアイデアを得ることができるようにコードスニペットを持っていますか? –

+0

フォームのsubmitボタンをクリックすると、paramsに 'location_id'を持つ' get_inventory_path'にリクエストが送られます。したがって、コントローラのアクションでは、 'session [:location_id] = params [:location] [:location_id]'を実行できます。 –

+0

フォームを使ってこのページにアクセスすると、そのコントローラのアクションで '@location_id = session [:location_id]'を設定することができます。ビューでは、 'get_inventory_path'からフェッチするこの場所のインベントリデータを表示することができます。 –

関連する問題