我有一个常用的布局文件,用于站点范围内。它包含诸如链接:Rails 3名称空间路由:如何将*从*命名空间链接回全局名称空间? [REVISED]
<%= 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
前加上所有:controller
参数前面的前导斜杠以突破命名空间?
尝试使用 '<真正的资源名称> /论坛',甚至<真正的资源名称> _forums_path(或其他指定的路线是这样的,因为这只是一个猜测/建议。 – jaydel 2011-05-20 11:54:29
但是,如果你赶上了我的漂移,那么问题不在于链接到名称空间路由,它是从名称空间路由内部链接到非名称空间路由? :)这就像你必须在你的布局中的链接中使用向前的所有控制器名称的前缀斜线,例如'<%= link_to(“Home”,{:controller =>“/ home”,:action =>:index}%>',否则它会尝试在admin命名空间中找到一个“Home”控制器,在全局命名空间 – d11wtq 2011-05-20 12:01:00
你可能会考虑这个:http://pandejo.blogspot.com/2009/03/rails-nested-resources-tutorial.html – jaydel 2011-05-20 12:01:57