如何在rails中重定向后防止“表单重新提交”

时间:2013-03-22 14:47:03

标签: ruby-on-rails forms google-chrome

我遇到了成功提交表单的问题。它重定向到show动作。如果我刷新页面(ctrl + r),它会打开一个提示,询问我是否要“确认表格重新提交”,我不想这样做。

之前有没有人见过这个问题,知道如何修复它?

以下是一些代码:

表单视图:

= simple_form_for @book_request do |f|
  = f.input :title
  .actions= f.submit

节目视图

%dl
  %dt Title
  %dd= @book_request.title

我的控制器:

...

respond_to :html

def show
  respond_with(@book_request = BookRequest.find(params[:id]))
end

def new
  respond_with(@book_request = BookRequest.new)
end

def create
  @book_request = BookRequest.new(params[:book_request])
  @book_request.save
  respond_with(@book_request)
end

def edit
  respond_with(@book_request = BookRequest.find(params[:id]))
end

def update
  @book_request = BookRequest.find(params[:id])
  @book_request.update_attributes(params[:book_request])
  respond_with(@book_request)
end

...

更新

此问题看起来已经解决了。我刚刚更新到chrome版本26.0.1410.43,它按预期工作。

1 个答案:

答案 0 :(得分:1)

这是chrome中的错误。应尽快修复。 有关详细信息,请参阅https://code.google.com/p/chromium/issues/detail?id=177855

编辑:如果您想要临时修复(用于开发目的),您只需将任何get参数添加到for submission url。处理完POST后,照常重定向。

= simple_form_for @book_request, url: books_url(time: DateTime.now) do |f|
  = f.input :title
  .actions= f.submit