删除后Rails重定向到索引页面

时间:2018-03-07 15:27:49

标签: ruby-on-rails

我需要在对象的显示页面上放置删除链接。此节目页面将在两个不同的控制器上呈现。我需要将其重定向到请求来自的索引页面。网址为
localhost:3000 / users(索引页面),它将链接到书籍(显示页面),该URL将是本地主机:3000 / books / I' d。并在另一个控制器索引页面本地主机:3000 /书籍,也有链接到书籍显示页面,其中有删除链接。我需要重定向到请求来自的索引页面。任何帮助

编辑: 如何在Ruby On Rails中重定向到上一页? (问题已存在) 我们可以在编辑操作中获取请求URL。但是这里的删除操作将在常见的显示页面

3 个答案:

答案 0 :(得分:2)

您可以通过将其存储在会话中来跟踪对索引页面的访问:

class ApplicationController
  private 
  def store_location
    session[:stored_location] = request.path
  end

  def stored_location
    session[:stored_location]
  end
end

class UsersController
  before_acton :store_location, only: [:index]
  # ...
end

class BooksController
  before_acton :store_location, only: [:index]
  # ...
end

你可以用它来摧毁你的行动:

class BooksController
  def destroy
    @book.destroy
    redirect_to stored_location || books_path
  end
end

答案 1 :(得分:0)

如果我正确理解了您的问题,您可以将以下内容放入delete控制器:

redirect_to :back

应该重定向回用户来自的页面。

答案 2 :(得分:0)

红宝石2.5.1p57 | Rails 5.2.0

在方法末尾放置

redirect_to action: :index