2010-09-23 73 views
2

我想改變我刪不刪除,但更新叫上記錄的字段「已刪除」軌的link_to更新1場

,「你確定嗎?」:方法=>:刪除%>

似乎應該工作,但它不:

true,:confirm =>'你確定嗎?',:method =>:post%>

回答

2

有沒有自動的方式來做到這一點,通過一個視圖助手,如鏈接到。你在你的控制器中的行爲需要爲你做到這一點。

如果你從來沒有想要通過你的銷燬行爲來刪除一個文件,那麼只需重寫該行爲來將其「已刪除」屬性設置爲true,而不是實際銷燬它。這樣你可以繼續使用你的原始鏈接。所以:

class Document < ActiveRecord::Base 

    # DELETE /documents/:id 
    def destroy 
    @document = Document.find(params[:id]) 
    @document.deleted = true 
    @document.save 
    redirect_to documents_path 
    end 
end 

<%= link_to 'Destroy', document, :confirm => 'Are you sure?', :method => :delete %> 
+0

這是做正確的方式,但如果你想簡化代碼一點,我會用: Document.find(PARAMS [:編號] ).update_attribute(:刪除,真) – 2010-09-23 17:53:14

+0

我想過這個更多,有沒有辦法做到這一點的網址,如果我想要取消刪除?或者只是更新任何給定的屬性。做一段時間的形式和樣式的按鈕是另一種方式,我一直這樣做,但它看起來很醜陋。 – Joelio 2010-09-23 19:52:25

+1

不確定我真的知道你的意思是你的「表單...」,但如果你想更新任何給定的屬性,請使用更新操作:)你似乎被某些導軌魔法弄糊塗了。你不希望僅僅爲了更新一個屬性而採取行動,而是通過用params更新來更新它們的整個重要部分。取消刪除,您可以創建一個名爲undelete的自定義操作,然後執行上述操作。正確地路由您的鏈接... – brad 2010-09-23 22:04:08