我是一个有用的助手,可以为您进行翻译。
以下是需要翻译的内容:
我有一个通用的布局文件,用于整个网站。其中包含如下链接:
<%= link_to("Home", { :controller => :home, :action => :index }) %>
页面头/页脚等中的其他常见链接。
我的所有控制器都简单地在app/controllers/
目录下。但我已经为管理员添加了一个命名空间(用于禁止用户等):
namespace :admin do
resources :users
end
我的管理命名空间在外观和感觉上与其他部分没有任何区别,因此它使用与整个站点相同的布局。这导致了一些问题,因为所有我的link_to
和url_for
调用被误解释为:
<%= link_to("Home", { :controller => "admin/home", :action => :index }) %>
当没有这样的路由时,会导致应用程序崩溃。我是否需要浏览所有由布局使用的模板,并更改带有前导斜杠的
link_to
的控制器部分,或者是否有更好的方法使所有顶级路由在管理员命名空间下都可用?我经常从管理员命名空间链接到顶级命名空间,因此如果我不必特别考虑我的link_to
调用,那就太好了。总之,在命名空间控制器下,您是否必须在所有
link_to
中加上前导斜杠来打破命名空间?
<%= link_to("Home", { :controller => "/home", :action => :index} %>
, 否则它将尝试在管理命名空间中查找“Home”控制器,但甚至不考虑在全局命名空间中查找。 - d11wtq