我有一些像这样的控制器代码来更新workorder.wostatus_id字段。
def changestatus
@workorder = Workorder.find(params[:id])
@workorder.update_attributes(params[:wostatus_id])
render nothing: true
end
最终执行changestatus的咖啡脚本:
receive: (event, ui) ->
alert $(ui.item).attr('change_url')
alert $(this).data('wostatus-id')
$.ajax
type: 'PUT'
url: "http://localhost:5000/workorders/13/changestatus"
data:
wostatus_id: 3
我试图让这个工作起来时,我已经对url和wostatus_id进行了硬编码。
但是,以下几行没有从咖啡中得到3:
@workorder.update_attributes(params[:wostatus_id])
如果我对该行进行硬编码,则可以将wostatus更新为3:
@workorder.update_attribute :wostatus_id, '4'
提前致谢!
答案 0 :(得分:1)
你的CoffeeScript的这一点:
data:
wostatus_id: 3
应该给你一个params
,如下所示:
{ :wostatus_id => 3 }
所以当你说:
@workorder.update_attributes(params[:wostatus_id])
你真的在说:
@workorder.update_attributes(3)
这并没有多大意义。您需要为update_attributes
提供一个键和一个值:
@workorder.update_attributes(:wostatus_id => params[:wostatus_id])