1

我在 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?任何人都可以对我可能错的地方有所了解吗?

4

1 回答 1

0

由于您在 ajax 调用中指定的 dataType 是 json,请尝试

format.json { 
      render 'users/locations' 
    }

而不是你控制器中的 format.js

于 2013-08-19T03:12:52.633 回答