现在,我在提交表单时有一个rails ajax请求,其中包含以下成功代码:
if @event.save
...
respond_to do |format|
format.js { render 'draw_calendar' }
format.html { redirect_to show_calendar_path }
end
end
我需要添加一些代码,如果在表单上设置了新标志,则会为不同的模型生成新的后续表单,当然应该由不同的控制器管理。因此,我想要做的是,如果@event
成功保存,请检查该标志(简单),如果已设置,则重定向到另一个控制器操作。首先,如果它是一个ajax请求(format.js),它甚至可以在浏览器中工作吗?第二,浏览器是否会成功呈现从新控制器操作发回的任何内容?
答案 0 :(得分:0)
是的,浏览器始终遵循ajax请求中的重定向
if @event.save
if @event.something?
redirect_to some_other_path(format: params[:format])
return
end
respond_to do |format|
format.js { render 'draw_calendar' }
format.html { redirect_to show_calendar_path }
end
end
如果您需要在javascript代码中检测重定向,我通常会添加自定义标题
response.headers['X-XHR-Current-Location'] = request.fullpath