Rails 4使用xml和jquery更新数据

时间:2014-02-01 19:21:06

标签: javascript jquery ruby-on-rails ajax

我正在尝试使用jquery中的ajax调用自动更新数据。

当对象被移动时,正在执行此代码:

这是我的jquery代码

$.ajax({
  type: "PUT",
  url: "/devices/2328.xml",
data: '<device><name>test</name></device>',

  contentType: 'application/xml', // format of request payload
  dataType: 'html', // format of the response
  }); 

我的控制器看起来像这样:

def update
@device = Device.find(params[:id])
if @device.update_attributes(device_params)
  respond_with @device
else
  render :action => 'edit'
end
end

private
def device_params
  params.require(:device).permit(:name)
end

在我的日志中,我可以看到请求进入,但没有真正发生,请参见底部已完成204无内容 我也注意到在日志的参数部分找不到我传递的值

Started PUT "/devices/2328.xml" for 127.0.0.1 at 2014-02-01 19:10:33 +0100
Processing by DevicesController#update as XML
Parameters: {"id"=>"2328"}

Device Load (0.4ms)  SELECT `devices`.* FROM `devices` WHERE `devices`.`id` = 2328  LIMIT 1

(0.1ms)BEGIN    (0.1ms)COMMIT    完成204无内容9ms(ActiveRecord:0.6ms)

我无法弄清楚出了什么问题。

有没有人有线索?

1 个答案:

答案 0 :(得分:0)

我没有看到data: 'test'个参数被传递过来。这可能是键/值对问题。

更改

中的data: { 'device': { 'name': 'test' }}
$.ajax({ type: "PUT", url: "/devices/2328.xml", 
  data: { 'device': { 'name': 'test' }},
  contentType: 'application/xml', // format of request payload
  dataType: 'html', // format of the response
});