0

我有一些这样的控制器代码来更新 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'

提前致谢!

4

1 回答 1

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])
于 2013-01-09T01:36:51.987 回答