2010-09-23 64 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