0

我有一个嵌套在类别和奖项下面的建议。

所以 Category/:id/awards/:id/recommendations/:id

我有一个资产模型来处理推荐的回形针附件。A Recommendation has_many Assets, Assets belongs_to :recommendation

在我的推荐新/编辑视图中,我正在呈现一个部分表单(正常情况下),让用户可以选择上传多个资产。

如果有已经相关的资产,那么它会列出它们。我正在努力在建议控制器上设置自定义删除操作。

我当前的链接到:

<%= 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 

路线: 资源 :recommendations 资源 :categories 做资源 :awards 做资源 :recommendations end end

我还在学习远程 => true,以及如何路由这个傻瓜。不确定我是否需要嵌套路由。我倾向于认为不是。因为我的循环中有一个 Asset.id,所以我应该能够执行销毁而根本不需要推荐。

所以问题/s:我需要一个路由来访问我的推荐控制器中的自定义操作吗?谢谢

4

1 回答 1

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"
于 2012-11-19T19:03:35.707 回答