[英]How to specify different action for link_to helper?
我正在創建一個網站,用戶可以在其中標記和取消標記為“收藏夾”。 我使用Rails的form屬性remote: true
通過Ajax實現了這一點remote: true
因此不會重新加載整個頁面,只是項目的狀態發生了變化。
我在FavouritesController
有兩種方法
def create
Favourite.create!(item_id: params[:favourite][:item_id])
respond_to { |format| format.js }
end
def destroy
Favourite.find(params[:id]).destroy!
respond_to { |format| format.js }
end
問題是:
我想從同一控制器調用另一個動作,以“取消標記”另一個視圖中的項目。 我在下面使用代碼,但是當我單擊鏈接時,從控制器調用了舊方法destroy
,而不是所需的delete_from_index_list
方法。 我需要兩個單獨的方法,因為它們返回不同的javascript(jquery)。
<%= link_to "delete", @favourite, method: :delete, remote: true, action: 'delete_from_index_list' %>
查閱link_to文檔 -我將描述您想要的內容。
我沒有測試過,但是我猜你想要:
<%= link_to "delete", controller: 'favourites', action: 'delete_from_index_list', id: @favourite, remote: true %>
如果這是我的代碼,我將找到delete_from_index_list
方法的路由,並以此方式進行調用:
<%= link_to "delete", route_for_delete_from_index_list_path(@favourite), method: :delete %>
這樣,它就更資源豐富,而前一個示例是非資源性的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.