Rails 4 - 当用户点击Back按钮时删除Order Form数据

时间:2014-11-26 01:00:06

标签: ruby-on-rails forms

我正在Rails 4中构建一个电子商务应用程序。在我提交订单后,我会转到感谢页面。当我点击后退按钮时,我会收回所有填写的数据,包括信用卡信息。因此,如果我再次点击提交,则会下一个新订单。

当用户点击后退按钮时,如何删除所有表单数据。这就足够了,因为如果用户再次输入所有信息,则不是偶然的顺序。

任何其他推荐的解决方法?

以下是表单代码的一部分..

    <%= f.text_field :cardname %>
    <%= f.text_field :address %>
    <%= f.text_field :address2 %>
    <%= f.text_field :city %>
    <%= f.select(:state, options_for_select(us_states, f.object.state), {prompt: "Select"}) %>
    <%= f.text_field :zip %>

    <%= text_field_tag :card_number, nil, { :name => nil, :'data-stripe' => "number" %>
    <%= text_field_tag :card_code, nil, { :name => nil, :'data-stripe' => "cvc" } %>
    <%= select_month nil, { use_two_digit_numbers: true }, { :name => nil, :'data-stripe' => "exp-month" } %>
    <%= select_year nil, { start_year: Date.today.year, end_year: Date.today.year+10 }, { :name => nil, :'data-stripe' => "exp-year" } %>

    <%= f.submit "Confirm Order" %>

更新 基于这个question,我在订单控制器中输入了以下代码。此代码为用户提供了一些警告,因此有所帮助。但是用户可以在警告对话框上单击“确定”并返回到订单页面,信息仍会显示在表单中。当用户点击后退按钮时,是否有一种简单的方法可以清除订单上的缓存?

  before_filter :set_cache_buster

  def set_cache_buster
    response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
    response.headers["Pragma"] = "no-cache"
    response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
  end

0 个答案:

没有答案