2012-11-19 16 views
0

我有一個嵌套在類別和獎勵下的建議。如何爲嵌套資源和自定義控制器動作設置rails 3路由

所以類別/:ID /獎勵/:ID /推薦/:ID

我有一個處理回形針附件建議書的資產模型。推薦has_many資產,資產belongs_to:建議

在我的推薦新/編輯視圖我渲染表單部分(正常情況下),使用戶可以選擇上傳多個資產。

如果有資產已經相關,則列出它們。我正在設置建議控制器上的自定義刪除操作。

我目前的link_to:

<%= link_to "Delete Attachment", 
       {:controller => :recommendations, :action => :destroy_asset, :id => asset.id }, 
       {:remote => "true", :confirm => "Are you sure you want to delete this image?"} 
     %> 

我的控制器動作:

def destroy_asset 
    #@recommendation = Recommendation.find(params[:id]) 
    @asset = Asset.find(params[:id]) 
    @asset.destroy 
    respond_to do |format| 
     format.js 
    end 
    end 

路線: 資源:建議 資源:類別做 資源:獎勵辦 資源:建議 結束 結束

我仍在學習remote => true,以及如何路由這個吸盤。不知道我是否需要嵌套路由。我傾向於不這樣想。由於我在我的循環中有一個Asset.id,我應該可以執行該銷燬而不需要建議。

所以問題:我需要一個路線來訪問我的recommendations_controller中的自定義動作嗎? 感謝

回答

0

試試這個:

resources :categories do 
    resources :awards do 
     resources :recommendations 
      member do 
       get :destroy_asset 
      end 
     end 
    end 
end 

,或者如果你只是想只destroy_asset根據建議控制器動作,做這樣的事情:

resources :recommendations 
    member do 
     get :destroy_asset 
    end 
end 

,或者如果你想定製的匹配,這樣做這個:

match "asset/:id/destroy_asset", :to => "recommendations#destroy_asset", 
:as=> "destroy_asset" 
+0

試過這個,跑耙路線,其中顯示了destroy_asset_category_award然後查找awards_controller中的destroy_asset。我甚至需要一條路線嗎?因爲我已經在建議編輯表單視圖中,所以我只能指定操作? –

+0

您可以隨時編寫匹配特定控制器操作的自定義路由匹配。看我的編輯! –

+0

感謝您的幫助! –

相關問題