2016-09-25 53 views
1

我正在使用Rails 4.2並使用ActsAsParanoid gem軟刪除數據庫中的項目。如何讓link_to恢復軟刪除的物品?

我創建了一個控制器動作指數.only_deleted對象...

sample_controller.rb

class FlavorsController < ApplicationController 
    ... 
    def inactive 
     @flavors = Flavor.only_deleted 
     render action: :index 
    end 
    ... 
    end 

我使用的部分_flavor渲染風味的,我不知道如何讓link_to視圖助手恢復這個對象?喜歡的東西...

<%= link_to "Recover", flavor.recover %> 
+0

你已經有了大部分的答案,也許你只需要在你的'flavors'控制器中添加一個新的動作,就像'def recover'一樣,在這個動作中,只需要執行'@ flavor.recover'。您還需要爲該新操作添加新的成員路由,並且在該操作中需要加載'@ flavor'。然後,只需在'link_to'中使用添加的路線。 – fanta

+0

@fanta您是否願意回答更多細節,就像我剛纔所說的那樣,但它返回FlavorsController#中的ActiveRecord :: RecordNotFound錯誤#恢復找不到'id'= 1的味道[WHERE「flavors」。「 deleted_at「IS NULL」' –

+0

聽起來就像您在查詢中缺少'with_deleted'範圍。像'Flavor.with_deleted.find(params [:id])''。 – messanjah

回答

0

感謝芬達的評論,我能找到答案......

1添加成員到我的路線

resources :flavors 
    collection do 
     get 'inactive' 
    end 
    member do 
     get 'recover' 
    end 
    end 

然後在我的inactive_index。 html.erb我在下面添加了鏈接

<%= link_to recover_flavor_path(flavor) %>