Pergunta

Eu tenho um aplicativo Rails 3.2 em que estou usando a gema Alta voltagem para minhas páginas públicas. Parece funcionar bem, no entanto, gostaria de poder colocar alguns subdiretórios na minha pasta de páginas.

Por exemplo:

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

Neste exemplo, quero apontar meu navegador para pages/directory_1/index, etc. A documentação afirma que é possível:

Você pode aninhar páginas em uma estrutura de diretórios, se isso faz sentido a partir de uma perspectiva de URL para você: link_to "Relatórios do Q4", Page_Path ("Sobre / Corporate / Políticas / HR / EN_US / Biz / Vendas / Quarto - Quatro")

Mas algo assim não funciona para mim.

Eu tentei com um namespace:

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

Mas isso, claro, então vai para directory_1/high_voltage/pages#show, o que está errado.

Simplesmente fazendo jogo "pages/directory_1/:id" => "high_voltage/pages#show" Vem com dois problemas: ele não permite mais visualizações no próprio diretório de páginas, e as visualizações com o mesmo nome de arquivo em diferentes subdiretórios ficarão confusas.

Então, como posso realizar diretórios aninhados dentro do diretório dos meus páginas com alta tensão?

Foi útil?

Solução

Basta criar uma estrutura de diretório dentro app/views/pages para refletir a hierarquia de URL que você precisa.

Por exemplo, se você criou uma visão nomeada about.html.erb com o caminho app/views/pages/about_me/about.html.erb, você vai referenciá-lo usando

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

Eu recebi esta solução exata trabalhando em um projeto atual.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top