我如何重新加载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
谢谢
对于我的应用程序,我使用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"
- validation导轨的自定义消息3
- Rails 3:获取随机logging
- Ruby on Railscallback,before_save和before_create之间有什么区别?
- 如何将哈希键从“符号”更改为“string”?
- 无法在60秒内获得稳定的firefox连接(127.0.0.1:7055)
- 由于bot,Ruby on Rails“UTF-8中的无效字节序列”
- 等效的.try()散列,以避免“未定义的方法”错误的零?
- 在'respond_to'格式语句中`:location => …`和`head:ok`是什么意思?
- angular色不存在,使用PostgreSQL时无法创build数据库