[英]Rails 4 page reload after ajax call
我有一个应用程序,它根据我存储在会话变量中的位置显示大量信息页面。
我在其他控制器的不同页面之间的部分共享中使用单个选择。
_location_select.html.erb
<%= select_tag(:location, options_for_select(Location.all.order('name ASC').collect { |l| [l.name, l.id] }, [session[:location]||'']), include_blank: true) %>
这使得ajax调用:
locations_controller.rb
class LocationsController < ApplicationController
def select
session[:location] = params[:value]
render js: ''
end
end
这是我的coffescript:
home.js.coffee
$ ->
$('#location').change ->
$.get '/location/select', {value: $('option:selected', this).val()}
所有这些代码都运行良好,但我需要在ajax调用完成后重新加载页面,让控制器返回更新的html太复杂了,因为位置选择将出现在如此大量的页面上。
我试过添加成功:和错误:回调函数到ajax调用,并且还使用了ajaxStop。 我可以让ajax调用工作或页面重新加载工作,但无法找到获得两者的方法。
我试过添加:
$(document).ajaxStop(function(){
window.location.reload();
});
我在哪里放置location.reload()还是有更好的方法?
仅供参考,我在这个应用程序中没有使用turbolinks。
locations_controller.rb
class LocationsController < ApplicationController
def select
session[:location] = params[:value]
respond_to do |format|
format.js {}
end
end
end
意见/位置/ select.js
window.location.reload();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.