使用嵌套目录的高电压

时间:2013-02-06 10:05:01

标签: ruby-on-rails routes url-routing high-voltage

我有一个rails 3.2应用程序,我在其中使用gem High Voltage作为我的公共页面。它似乎工作正常,但是,我希望能够在我的页面文件夹中放置一些子目录。

例如:

/pages
--/directory_1
----index.html.erb
--/directory_2
----index.html.erb

在此示例中,我想将浏览器指向pages/directory_1/index等。文档声称可以:

您可以将页面嵌套在目录结构中,如果从URL的角度来看是有意义的: link_to" Q4报告",page_path("关于/ corporate / policies / 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"会带来两个问题:它不再允许页面目录本身中的任何视图,并且不同子目录中具有相同文件名的视图将会混淆。

那么如何使用High Voltage在我的pages目录中完成嵌套目录?

1 个答案:

答案 0 :(得分:1)

只需在app/views/pages中创建一个目录结构,以反映您需要的URL层次结构。

例如,如果您使用路径about.html.erb创建了名为app/views/pages/about_me/about.html.erb的视图,则可以使用

引用它
<%= link_to "About", page_path("about_me/about") %>

我在当前项目中得到了这个精确的解决方案。