1

admin名前空間の下にネストされたリソースがあります。これadmin/topic/comments_controller.rbは。の下のリソースadmin/topics_controller.rbです。

  namespace :admin do
    resources :topics do
      resources :comments, :controller => "topic/comments"
    end
  end

この削除ルートを教えてください:

DELETE
/admin/topics/:topic_id/comments/:id(.:format)
admin/topic/comments#destroy

そして、私は次のようにコメントを破棄するためのリンクを作成しています:

# comment = @topic.comment.first
<%= link_to "Destroy", [:admin, comment], :method => :delete %>

次のルートを生成します。

/admin/topics/165/comments/11

2つのIDが入れ替わっていることを除いて、すべて正しいようです。私は何が間違っているのですか?

4

2 に答える 2

2

代わりにname_routeを使用できます:

<%= link_to "Destroy", admin_topic_comment_path(@topic, comment), :method => :delete %>
于 2012-04-12T07:41:31.787 に答える
1

<%= link_to 'Destroy', :action => 'destroy', :id => comment.id, :method => :delete %>

または、RESTFULルートを使用する場合:

<%= link_to 'Destroy', delete_comment(:id => comment.id), :method => :delete %>

link_to名前空間付きコントローラーとルートを操作する場合、ヘルパーが正しく機能するためには、名前空間付きモデルを使用する必要があります。

例:app / models / admin / comment.rb

class Admin::Comment < Comment   
end
于 2012-04-12T07:46:16.280 に答える