1

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

例如:

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

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

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

那么如何使用高压完成页面目录中的嵌套目录?

4

1 回答 1

1

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

例如,如果您创建了一个名为about.html.erbpath的视图app/views/pages/about_me/about.html.erb,您将通过使用

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

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

于 2013-03-30T13:47:19.933 回答