[RUBY] Gibt der Pfadhelfer (_path) einen relativen Pfad zurück? Absoluter Pass? : Rails Tutorial Memorandum

Gibt der Pfadhelfer (_path) einen relativen Pfad zurück? Absoluter Pass? : Rails Tutorial Memorandum

Bei der Untersuchung des Nutzungsunterschieds zwischen dem Pfad-Helfer und dem URL-Helfer ** ”Pfad-Helfer gibt relativen Pfad zurück, URL-Helfer gibt absoluten Pfad zurück” **

Ich fühlte mich mit dieser Notation unwohl und versuchte nachzuforschen

Als Voraussetzung nur in der lokalen Umgebung

Wenn der folgende vollständige Pfad (vollständiger Pfad), der das Verzeichnis my_room angibt, vorhanden ist

/my_city/my_home/my_room/i_am_here.html.erb

Absoluter Pfad (= vollständiger Pfad)

Pfad (Route) von / aus gesehen (root: Verzeichnis der obersten Ebene) Vor der Notation steht ** immer / (root) **

/my_city/my_home/my_room/i_am_here.html.erb	#Ich habe von der Wurzel gesehen_am_here.html.erb Pfadnotation

Relativer Pfad

Pfad gesehen von wo du bist Die Notation enthält am Anfang nicht ** / (root) **

my_home/my_room/i_am_here.html.erb 	# my_Ich habe aus der Stadt gesehen_am_here.html.erb Pfadnotation
my_room/i_am_here.html.erb         	# my_Ich habe von zu Hause aus gesehen_am_here.html.erb Pfadnotation
../i_am_here.html.erb      	# i_am_here.html.mein wie von erb aus gesehen_Home-Pfad-Notation

Sie können einfach so denken

In der Rails-Entwicklungsumgebung?

Eine Mischung aus Notation mit und ohne /

Bisher gibt es zwei Notationen, die verdeckt wurden.

Bei der Beschreibung des Routings Während im Rails-Tutorial / (root) hinzugefügt wird In Progate wurde es ohne / (root) geschrieben (obwohl / in link_to usw. angehängt ist)

Das ist leicht zu verstehen Auch wenn Sie das Routing im Progate-Ausdruck ohne / beschreiben

  get 'help',      to: 'static_pages#help'	# help -> /Das Ausführungsergebnis ist auch mit Hilfe das gleiche
  get 'about',     to: 'static_pages#about'
.
.
.  

Wenn Sie das tatsächliche Routing überprüfen Sie können sehen, dass / (root) abgeschlossen ist

$ rails routes
	Prefix Verb   URI Pattern   	Controller#Action
	 root GET    /									static_pages#home
	 help GET    /help(.:format)		static_pages#help
  about GET    /about(.:format)		static_pages#about
.
.
.

** Beide Notationen sind in Ordnung, da Rails sie selbst ergänzen. Das Ergebnis der internen Verarbeitung sieht aus wie ein absoluter Pfad basierend auf / **

Gibt der Pfadhelfer einen relativen Pfad zurück?

Außerdem der Pfad-Helfer, der im Rails-Tutorial behandelt wird. Der Typ, den diese Ressource bringt

Wenn Sie sich auf Folgendes beziehen Ähnlich wie bei der Routing-Beschreibung Ist der Pfadhelfer ein absoluter Pfad, der auf ** / basiert? Scheint zurückzukehren **

2.3 Pfad- und URL-Helfer Durch das Erstellen eines einfallsreichen Routings stehen den Controllern Ihrer Anwendung viele Helfer zur Verfügung. Nehmen Sie die Routing-Ressourcen: Fotos als Beispiel.

photos_path gibt / photos zurück new_photo_path gibt / photos / new zurück edit_photo_path (: id) gibt / photos /: id / edit zurück (edit_photo_path (10) gibt / photos / 10 / edit zurück) photo_path (: id) gibt / photos /: id zurück. (Wenn photo_path (10), wird / photos / 10 zurückgegeben) Jeder dieser _path-Helfer verfügt über einen entsprechenden _url-Helfer (z. B. photos_url). ** Der _url-Helfer unterscheidet sich darin, dass der aktuelle Hostname, die Portnummer und das Pfadpräfix _path vorangestellt werden. ** ** **

Rails Routing-Rails-Handbuch

Ist das ein absoluter Pass? Ist es ein relativer Weg?

Ist der von Rails behandelte Pfad ein absoluter Pfad? Ist es ein relativer Weg? Im Denken Die folgenden Websites waren hilfreich

[Für Anfänger] Erklären Sie den Unterschied zwischen absolutem und relativem Pfad anhand von Abbildungen! | webliker

Mit anderen Worten, der Pfad / ..., den Rails verarbeitet, ist ** Relativer Routenpfad **, wie ein absoluter Pfad basierend auf dem Routenpfad (relative, virtuelle? Route) ** Ich habe verstanden

Da wird der Übergang von der Entwicklungsumgebung zur Produktionsumgebung erwartet (Im ersten Beispiel wurde entschieden, dass das Ausgangsverzeichnis in ein anderes Stadtverzeichnis verschoben wird.) Es ist keine gute Idee, die vollständige Pfadnotation in der Entwicklungsumgebung zu verwenden Und um die Anfälligkeit relativer Pfade für strukturelle Veränderungen zu vermeiden Der relative Wurzelpfad wäre praktisch

Ist der URL-Helfer ein absoluter Pfad?

Wenn Sie sich erneut auf die obige Rails-Anleitung beziehen

Während der Pfadhelfer einen relativen Wurzelpfad zurückgibt Der URL-Helfer befindet sich in der Umgebung, in der er platziert ist (in der Produktionsumgebung hängt er vom Server in der Produktionsumgebung ab). ** Wahrscheinlich den vollen Weg bekommen und zurückgeben **

Reference:

Richtige Verwendung der Pfadmethode und der _url-Methode --Qiita

Kannst du den Unterschied erklären? Unterschied zwischen "Vollpfad", "Absolutpfad" und "Relativpfad" Flapismus

Recommended Posts

Gibt der Pfadhelfer (_path) einen relativen Pfad zurück? Absoluter Pass? : Rails Tutorial Memorandum
Was ist ein Terminal? -Absoluter Pfad & relativer Pfad-
Rails Tutorial Memorandum 1
Rails Tutorial Memorandum 2
PATH geht nicht vorbei ... Die Ursache ist der Zeichencode
Rails Tutorial Memorandum (Kapitel 3, 3.1)
Ein Memorandum der Pfadeinstellungsprozedur der Umgebungsvariablen "JAVA_HOME"
Rails Tutorial Records und Memorandum # 0
Die Geschichte des Refactorings mit einem selbstgemachten Helfer zum ersten Mal in einer Rails-App
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 1) erstellt.
Was tun, wenn Cloud 9 im Rails-Lernprogramm voll ist?
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 5) erstellt:
So identifizieren Sie den Pfad, auf dem leicht Fehler gemacht werden können
[Selbststudium] Erstellen eines Portfolios (Original-App) nach Abschluss des Rails-Tutorials