我正在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