Frage

Ich habe eine Schienen 3.2-Anwendung, in der ich das Juwel verwende Hochspannung für meine öffentlichen Seiten. Es scheint gut zu funktionieren, ich möchte jedoch in der Lage sein, einige Unterverzeichnisse in den Ordner meines Seiten zu stellen.

Zum Beispiel:

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

In diesem Beispiel möchte ich meinen Browser hinweisen pages/directory_1/index, usw. Die Dokumentation behauptet, dass es möglich ist:

Sie können Seiten in einer Verzeichnisstruktur nisten, falls dies aus einer URL-Perspektive für Sie ist: link_to "Q4-Berichte", Page_Path ("Über / Corporate / Richtlinien / HR / EN_US / BIZ / Verkauf / Viertel-Four")

Aber so etwas funktioniert nicht für mich.

Ich habe es mit einem Namespace ausprobiert:

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

Aber das geht natürlich an directory_1/high_voltage/pages#show, was falsch ist.

Einfach nur das Match machen. "pages/directory_1/:id" => "high_voltage/pages#show" Kommt mit zwei Problemen: Es erlaubt keine Ansichten im Seitenverzeichnis selbst, und die Ansichten mit demselben Dateinamen in verschiedenen Unterverzeichnissen werden verwirrt.

Wie kann ich also verschachtelte Verzeichnisse in meinem Seitenverzeichnis mit hoher Spannung erreichen?

War es hilfreich?

Lösung

Erstellen Sie einfach eine Verzeichnisstruktur innen app/views/pages um die URL-Hierarchie, die Sie benötigen, widerspiegeln.

Wenn Sie beispielsweise eine Ansicht genannt haben, erstellt haben about.html.erb mit dem Pfad app/views/pages/about_me/about.html.erb, benutzen Sie es mit der Verwendung

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

Ich habe diese genaue Lösung in einem aktuellen Projekt erhielt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top