簡體   English   中英

如何為link_to助手指定不同的動作?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM