Rails的5 - 保留:JS格式,而重定向

问题描述 投票:0回答:2

我有一个情况:

  1. 浏览器提交一个JS格式请求到服务器。
  2. 服务器操作重定向到另一台服务器上的行动。
  3. 第二个动作呈现在.js.erb文件的JavaScript。

尽管尝试了多种方法,Rails的5呈现.js.erb从字面上看,显示我在视图中的实际代码。

一个人怎么能获得如此的js.erb文件正常运行Rails的redirect_to在JS格式的发生呢?

在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
ruby-on-rails ruby-on-rails-5
2个回答
1
投票

我曾在那里重新导向是不保留我的格式(JSON)同样的问题

我与(Rails的5)解决了这个问题:

redirect_to的_path(,则params:request.query_parameters.merge(格式:PARAMS [:格式))


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 -%>');
© www.soinside.com 2019 - 2024. All rights reserved.