我的管理命名空间下有一个嵌套资源:
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
所有似乎都是正确的,除了交换两个ID。我做错了什么?
答案 0 :(得分:2)
您可以改为使用name_route:
<%= link_to "Destroy", admin_topic_comment_path(@topic, comment), :method => :delete %>
答案 1 :(得分:1)
<%= link_to 'Destroy', :action => 'destroy', :id => comment.id, :method => :delete %>
或者如果您使用RESTFUL路线:
<%= link_to 'Destroy', delete_comment(:id => comment.id), :method => :delete %>
使用命名空间控制器和路由时,必须使用命名空间模型才能使link_to
帮助程序正常运行。
class Admin::Comment < Comment
end