11

有没有办法在 link_to 中包含重定向?我想在删除后刷新当前页面。但是,您可以从应用程序的多个视图中删除相同的记录。

这是link_to:

<%= link_to 'Delete', expense, confirm: 'Are you sure?', method: :delete, :class => 'btn btn-mini btn-danger' %>

如果没有,将 current_url 保存在 flash[:fromurl] 中是否有意义,然后将其放入 Controller destroy 部分,如下所示:

   respond_to do |format|
     format.html { redirect_to flash[:fromurl] }
     format.json { head :no_content }
   end

谢谢您的帮助!

4

3 回答 3

27

您可以使用redirect_to :back

respond_to do |format|
  format.html { redirect_to :back }
  format.json { head :no_content }
end

它使用请求中的标头“HTTP_REFERER”:

redirect_to :back
# is a shorthand for:
redirect_to request.env["HTTP_REFERER"]
于 2013-05-01T19:06:16.647 回答
4

在 Rails 5(官方文档)中,您可以使用更新的: redirect_back(fallback_location: root_path)

使用它会将用户重定向到引用页面(上一页,与 相同redirect_to :back)。如果这不可能,它会重定向到控制器中指定的后备位置。

控制器中的方法示例(这会将用户重定向到根路径作为后备位置):

def some_method
    #Your Code Here
    redirect_back(fallback_location: root_path)
end

expense删除并重定向回的方法示例,并回退到root_path

def destroy
    @expense.destroy
    redirect_back(fallback_location: root_path)
end

fallback_location如果引用页面无法重定向到,以下是可用于将浏览器重定向回特定页面的其他一些示例:

redirect_back fallback_location: "http://www.google.com"      #Redirects to Google (or any website you specify)
redirect_back fallback_location:  "/images/screenshot.jpg"    #Redirects to a local image
redirect_back fallback_location:  posts_path                  #Redirects to the 'posts' path
redirect_back fallback_location:  new_user_path               #Redirects to the new user path 
于 2016-10-17T00:35:48.677 回答
1

你也可以试试这个。

render :nothing => true
于 2018-07-09T07:12:43.737 回答