即使按下后退按钮,如何显示表单结果

时间:2016-07-07 11:45:31

标签: ruby-on-rails ajax ruby-on-rails-4 ruby-on-rails-5

我有一个用户选择位置的表单。它上面有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 个答案:

答案 0 :(得分:1)

我看到你根据选择框的值加载ajax数据。问题是,当你从这个页面重定向到另一个页面时,你会在回来时丢失你的ajax数据。

解决这个问题的一种方法是,只要选择框中的值发生更改,就可以通过加载数据的相同ajax请求保存会话中的位置,并在返回此页面时检查是否在会话中设置了位置显示该位置的数据。