0

カテゴリと賞の下にネストされた推奨事項があります。

だから Category/:id/awards/:id/recommendations/:id

レコメンデーションへのクリップの添付ファイルを処理する Assets モデルがあります。レコメンデーション 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 

ルート: リソース :おすすめ リソース :カテゴリー do リソース :アワード do リソース :recommendations end end

私はまだリモート=>真を学んでおり、この吸盤をルーティングする方法を学んでいます。ルートをネストする必要があるかどうかはわかりません。ないと思う傾向があります。ループに Asset.id があるので、勧告をまったく必要とせずに破棄を実行できるはずです。

質問/s: 私は自分のrecommendation_controllerでカスタムアクションにアクセスするためのルートが必要ですか? ありがとう

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 に答える