2013-08-29 208 views
0

我需要調用Button上的方法單擊我的視圖。下面是我的看法代碼:調用自定義控制器方法

<button type="submit" id="1"><%link_to "Done", {:controller => :summary, :action => :done_order}, {:method => :put }%></button> 

這個按鈕的點擊,我不得不刪除表中的一行,並更新與更新內容的視圖。下面是我的控制器的done_order方法

def done_order 

     List.where(:tableno => @orders.first.tableno).delete_all 
     redirect_to :action => :index 

    end 

當我點擊按鈕,我需要從名單「刪除表中的所有行(一個特定表號),並重定向到索引,這將再次獲取從列表行表中的@orders並傳遞它來查看填充。 在路由文件中,我定義爲:put "summary/done_order"

問題是它沒有執行任何操作。我已經嘗試了很多推薦的方法,但是每次都遇到一些錯誤。如果沒有錯誤,則不會執行任何操作。 我相信在我的理解中存在一些缺陷來實現這一點,我錯過了嘗試其他方式的東西。請指教。謝謝。

+0

您的routes.rb中是否有爲done_order操作添加的自定義路由? – usha

+0

是的。我已經在路由文件中添加了「summary/done_order」。 – Gaurav

回答

0

你應該設置爲這個路線:

# routes 
resources summaries do 
    put :done_order, on: :member 
end 

這應該允許寫的是這樣的:

= link_to "Done", done_order_summaries_path(@summary), method: :put 

我不知道你叫你的對象,但它似乎你沒有遵循慣例。所以這部分取決於你,但這是基本機制。另一個需要注意的是,你已經把一個鏈接放在一個按鈕標籤中。我不確定這甚至是有效的。你沒有必要那樣做。只需將鏈接樣式設置爲按鈕或使用按鈕,或者使用表單按鈕即可。