Ruby on rails Rails 5-重定向时保留:js格式
我的情况是:Ruby on rails Rails 5-重定向时保留:js格式,ruby-on-rails,ruby-on-rails-5,Ruby On Rails,Ruby On Rails 5,我的情况是: 浏览器向服务器提交JS格式请求 服务器操作重定向到另一个服务器操作 第二个操作在.js.erb文件中呈现javascript 尽管尝试了许多方法,Rails 5还是按字面意思呈现了.js.erb,向我展示了视图中的实际代码 如何让Rails重定向到JS格式,以便JS.erb文件正常运行 在Rails 4.2中,这起作用: redirect_to custom_data_path(...), format: 'js' 在Rails 5.2中,我尝试过: # 1 redirect_t
.js.erb
文件中呈现javascript重定向到JS格式,以便JS.erb文件正常运行
在Rails 4.2中,这起作用:
redirect_to custom_data_path(...), format: 'js'
在Rails 5.2中,我尝试过:
# 1
redirect_to custom_data_path(...), format: 'js'
# 2
redirect_to custom_data_path(...), format: :js
# 3
respond_to do |format|
format.js { redirect_to custom_data_path(...) }
end
# 4
request.format = :js
respond_to do |format|
format.js { redirect_to custom_data_path(...) }
end
我认为js请求没有概念或“重定向”。您始终可以呈现一个脚本,该脚本向所需的“重定向”url发出请求
而不是
format.js { redirect_to custom_data_path(...) }
您可以使用
//I'm using query just as an example, but it can be done with vanilla javascript o any js framework
$.getScript('<%= custom_data_path -%>');
//我使用query只是作为一个例子,但它可以通过任何js框架来实现
$.getScript(“”);
我遇到了同样的问题,重定向时没有保留我的格式(json)
我用(Rails 5)解决了这个问题:
将_重定向到_路径(,params:request.query_parameters.merge(格式:params[:format]))
您是否尝试将格式::js
作为命名路由的选项而不是重定向到方法的选项来移动<代码>自定义数据路径(..,格式::js)
。此外,选中此选项,如果使用turbolink,可能必须尝试使用turbolink选项。就我个人而言,我不会使用js格式的重定向,我不确定它是否是一个标准(一件事是它可以工作,另一件事是它打算以这种方式工作),我找不到关于它的官方信息。在路径中移动格式:“js”
。非常感谢。