ajax调用导致内部服务器错误500 rails控制器

时间:2013-08-19 02:06:59

标签: ruby-on-rails ajax internal-server-error

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

1 个答案:

答案 0 :(得分:0)

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

format.json { 
      render 'users/locations' 
    }

而不是控制器中的format.js