我在rails mvc上使用ruby,我正在尝试使用ajax调用将一些数据发送回服务器端。我对如何在mvc中发出和处理ajax请求感到困惑。
----------------在我的javascript文件中------------------
$.ajax({
type: 'POST',
url: 'http://localhost:3000/locations',
data: { lat: position.coords.latitude, lng: position.coords.longitude },
contentType: 'application/json',
dataType: 'json'
});
我正在使用respond_to块在我的控制器中捕获此请求:
----------------在我的家庭控制器中------------------
respond_to do |format|
format.js {
render 'users/locations'
}
format.html {}
end
---------------- route.rb ------------------------
post 'users/locations'
get 'users/locations'
match "/locations", to: "users#locations"
我尝试以这种方式提取数据:
----------------在我的位置动作------------------
dasdasdd // used as a breakpoint to test whether this part was executed. it wasn't.
current_user.update_attribute :Latitude, params[:lat]
current_user.update_attribute :Longitude, params[:lng]
使用调试firefox控制台,我看到内部服务器错误500.这可能解释了为什么从未执行过位置操作。但为什么会出现错误500?任何人都可以对我的错误有所了解吗?
答案 0 :(得分:0)
由于您在ajax调用中指定的dataType是json,请尝试
format.json {
render 'users/locations'
}
而不是控制器中的format.js