我在不同的命名空间中有很多控制器。 controller_name方法仅返回控制器的名称,例如, “文章”。 有没有机会获得像'service / articles'这样的全名(文章控制器在服务命名空间中)?
我想通过全局使用的部分创建指向每个控制器的索引操作的链接:
<%= link_to controller.display_name, { :controller => controller.controller_name, :action => "index"} %>
如果在'users'命名空间的视图中呈现此partial,我会收到错误:users / articles没有路由(它应该是service / articles)。
答案 0 :(得分:77)
你试过了吗?
controller_path
http://api.rubyonrails.org/classes/AbstractController/Base.html#method-i-controller_path
答案 1 :(得分:3)
您可以使用嵌套资源
,而不是链接到:controller,:action语法<强>的routes.rb 强>
resources :users do
resources: articles
end
您视图中的
= link_to 'Articles', user_article_path(current_user)
user_article将为您处理您的命名空间。