2008-10-02 61 views
6

如何在rails中安全地執行delete和put操作?我已經閱讀了文檔,並認爲我正在做的一切正常,但我似乎無法讓它工作。在rails中安全地執行AJAX刪除操作

例如,如果我想刪除一個員工,我會創建一個名爲「EmployeesController」的控制器並創建一個銷燬方法來執行刪除操作。

然後我進入routes.rb文件並輸入map.resources :employees,它使您可以訪問URL輔助函數。

在任何我想打電話從阿賈克斯操作,我應該有這樣一行:

<%= link_to_remote "Delete", employee_path(@employee), :method => :delete %> 

當我點擊鏈接,它仍然是發送POST操作,所以它什麼都不做。

我在想什麼或做錯了什麼?

回答

6

嘗試

:url => employee_url(@employee) 

IIRC,* _path被產生的一個名爲路線:資源指令,它包括方法,從而覆蓋您:方法=>:刪除

4

從我的代碼:

<%= link_to_remote "Delete", :url => post_url(post), :method => :delete %> 
0

只是添加一些額外的細節:使用:url => employee_url(@employee)幫助(從接受的答案)。另一部分搞砸了我的事實是,我期待一個HTTP刪除請求,但我不斷收到一個參數「_method」(通過rails自動添加)設置爲刪除的POST請求。

所以它正在調用正確的銷燬行爲,我通過向控制器添加了一些調試語句來證明。是的,我的刪除代碼在控制器中是錯誤的,所以當我認爲它不是真的刪除時。

-1

如果你的問題沒有AJAX請求,你必須添加適當的JavaScript標籤