我有一个rails 3.2应用程序,在该应用程序中,我的公共页面使用gem高压。它似乎工作得很好,但是,我希望能够在我的页面文件夹中放一些子目录。
例如:
/pages
--/directory_1
----index.html.erb
--/directory_2
----index.html.erb
在这个例子中,我想把浏览器指向pages/directory_1/index
等。文档声称这是可能的:
如果从URL的角度来看,您可以在目录结构中嵌套页面:link_to"第四季度报告",page_path("关于/corporate/policys/HR/en_US/biz/sales/Quarter Four")
但这样的事情对我不起作用。
我用一个名称空间尝试过:
namespace :directory_1 do
match "pages/:id" => "high_voltage/pages#show"
end
但这当然会转到directory_1/high_voltage/pages#show
,这是错误的。
简单地匹配"pages/directory_1/:id" => "high_voltage/pages#show"
会带来两个问题:它不再允许页面目录中的任何视图,并且不同子目录中具有相同文件名的视图会混淆。
那么,如何使用高压在页面目录中实现嵌套目录呢?
只需在app/views/pages
中创建一个目录结构,即可反映所需的URL层次结构。
例如,如果您创建了一个名为about.html.erb
、路径为app/views/pages/about_me/about.html.erb
的视图,您将使用来引用它
<%= link_to "About", page_path("about_me/about") %>
我在当前的一个项目中得到了这个精确的解决方案。