在我的管理名称空间下有一个嵌套的资源: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
除了两个ids被交换之外,一切似乎都是正确的。我做错了什么?
发布于 2012-04-12 07:41:32
您可以改用name_route:
<%= link_to "Destroy", admin_topic_comment_path(@topic, comment), :method => :delete %>
发布于 2012-04-12 07:46:16
<%= link_to 'Destroy', :action => 'destroy', :id => comment.id, :method => :delete %>
或者,如果您使用RESTFUL路由:
<%= link_to 'Destroy', delete_comment(:id => comment.id), :method => :delete %>
在使用名称空间控制器和路由时,必须使用名称空间模型才能使link_to
辅助对象正常工作。
例如,在app/model/admin/comment.rb中
class Admin::Comment < Comment
end
https://stackoverflow.com/questions/10119324
复制相似问题