rails从咖啡到控制器获取数据

时间:2013-01-09 00:54:55

标签: ruby-on-rails coffeescript

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

提前致谢!

1 个答案:

答案 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])