2013-01-09 69 views
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' 

提前致謝!

回答

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]) 
+0

感謝您的幫助! – Reddirt