我如何重新加载Ruby on Rails中的当前页面?

我目前在我的网站的每个页面上的标题栏中都有一个loginpopup窗口。 我希望能够在login成功后重新加载当前页面。 我如何在控制器中执行此操作?

def create #declaring and defining user variable stuff if user.save #reload current page <--how do I do this? end end 

谢谢

  • 带有多个正斜杠的url,是否会破坏任何东西?
  • 客户端路由(使用react-router)和服务器端路由
  • 在ASP.NET MVC中获取完整的URL地址
  • Rails路由(root:to => ...)
  • 在react-router v4中嵌套路由
  • Rails:将所有未知路由redirect到root_url
  • ASP.NET MVC的Url路由支持(点)
  • AngularJS - animationng视图转换
  • 5 Solutions collect form web for “我如何重新加载Ruby on Rails中的当前页面?”

    对于我的应用程序,我使用redirect_to :back ,它的窍门。 然而,我怀疑这可能有一个非常规用例(用户来自一个特殊的页面?)的错误,但我还没有发现它到目前为止在我的应用程序。

    如果您正在寻找一种方法来使页面刷新(通常是redirect_to :back ),您不必寻找一种方法来改变响应types – 只要告诉页面使用内联JS重新加载。

    format.js {render inline: "location.reload();" }

    像埃琳娜提到的,这应该在响应块,如下所示:

     respond_to do |format| format.js {render inline: "location.reload();" } end 

    上面的Archonic的答案为我工作。 然而,在Rails 3中,我不得不把它放在一个respond_to块,以避免“ArgumentError(太less的参数)”的错误:

     respond_to do |format| format.js {render inline: "location.reload();" } end 

    在Rails 5中redirect_to :back 改进了:

      redirect_back(fallback_location: root_path) 

    由于Rails 5(或者也许是旧版本),你有一个request.referrer方法。 您只需将控制器redirect到引用链接,然后打开请求来自的页面。

    redirect_to request.referrer, notice: "You're being redirected"