Pregunta

Tengo un rieles 3.2 Aplicación en la que estoy usando la gema Alto voltaje Para mis páginas públicas. Sin embargo, parece funcionar bien, me gustaría poder poner algunos subdirectorios en mi carpeta de páginas.

Por ejemplo:

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

En este ejemplo, quiero señalar mi navegador para pages/directory_1/index, etc. La documentación afirma que es posible:

Puede anidar páginas en una estructura de directorios, si eso tiene sentido desde una perspectiva de URL para usted: Link_to "Q4 reports", Page_PATH ("Acerca de / Corporativo / Políticas / HR / EN_US / BIZ / SALES / BRANDER-FURE")

Pero algo así no funciona para mí.

Lo he intentado con un espacio de nombres:

namespace :directory_1 do
  match "pages/:id" => "high_voltage/pages#show"
end

Pero eso, por supuesto, entonces va a directory_1/high_voltage/pages#show, Cuál está mal.

Simplemente haciendo coincidencia "pages/directory_1/:id" => "high_voltage/pages#show" Viene con dos problemas: ya no permite ninguna vista en el Directorio de páginas en sí, y las vistas con el mismo nombre de archivo en diferentes subdirectorias se confundirán.

Entonces, ¿cómo puedo lograr los directorios anidados dentro de mi directorio de páginas con alto voltaje?

¿Fue útil?

Solución

Simplemente cree una estructura de directorios dentro app/views/pages Para reflejar la jerarquía de la URL que necesita.

Por ejemplo, si creaste una vista nombrada about.html.erb con el camino app/views/pages/about_me/about.html.erb, lo hará referencia usando

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

Recibí esta solución exacta trabajando en un proyecto actual.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top