更新后如何返回上一页?

时间:2019-08-18 05:44:05

标签: ruby-on-rails ruby

点击更新按钮后,如何从编辑视图(edit.html.erb)返回上一页(列出有问题的项目)?我尝试过:

redirect_to request.referer #stays on the same page(edit.html.erb) 
redirect_to session.delete(:return_to) #outputs "Cannot redirect to nil!"
redirect_to :back #stays on same page
redirect_back fallback_location: posts_path #stays on same page
redirect_to(request.env['HTTP_REFERER']) #stays on same page

在数据库中,注释已更新。

虽然我可以使用posts_path(@comment),但我还想编辑另一个URL中的注释。因此,需要重定向到上一页。

1 个答案:

答案 0 :(得分:0)

您不能调用request.referer直接返回上一个编辑页面。由于使用update方法,request.referer将始终是edit路径。

您可以做一些技巧,例如解析request.referer动作的edit(可能是index,例如作为update动作的参数,以及重定向到更新资源的路径)

# edit form view
<%= hidden_field_tag :previous_request, request.referer %>

# update action
def update
  ...
  redirect_to params[:previous_request]
end