1

我的管理命名空间下有一个嵌套资源: Theadmin/topic/comments_controller.rbadmin/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

一切似乎都是正确的,只是两个 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 回答