我正在尝试使用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)
我无法弄清楚出了什么问题。
有没有人有线索?
答案 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
});