我遇到的情况是:
.js.erb
文件中。尽管尝试了多种方法,Rails 5仍按字面呈现.js.erb,在视图中显示了实际的代码。
如何使Rails redirect_to
以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
答案 0 :(得分:0)
我认为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 -%>');
答案 1 :(得分:0)
我遇到了相同的问题,即重定向时未保留我的格式(json)
我用(第5条)解决了这个问题:
redirect_to _path(,参数:request.query_parameters.merge(format:params [:format]))