[RUBY] L'assistant de chemin (_path) renvoie-t-il un chemin relatif? Pass absolu? : Mémorandum du tutoriel Rails

L'assistant de chemin (_path) renvoie-t-il un chemin relatif? Pass absolu? : Mémorandum du tutoriel Rails

Lors de l'examen de la différence d'utilisation entre l'assistant de chemin et l'assistant d'URL ** "path helper renvoie le chemin relatif, url helper renvoie le chemin absolu" **

Je me suis senti mal à l'aise avec la notation comme ça et j'ai essayé d'enquêter

En tant que prémisse, uniquement dans l'environnement local

Lorsque le chemin complet suivant (chemin complet) indiquant le répertoire my_room existe

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

Chemin absolu (= chemin complet)

Chemin (route) vu de / (racine: répertoire de niveau supérieur) La notation est ** toujours précédée de / (racine) **

/my_city/my_home/my_room/i_am_here.html.erb	#j'ai vu de la racine_am_here.html.notation de chemin erb

Chemin relatif

Chemin vu d'où tu es La notation n'inclut pas ** / (racine) au début **

my_home/my_room/i_am_here.html.erb 	# my_j'ai vu de la ville_am_here.html.notation de chemin erb
my_room/i_am_here.html.erb         	# my_j'ai vu de chez moi_am_here.html.notation de chemin erb
../i_am_here.html.erb      	# i_am_here.html.mon vu de erb_notation du chemin de départ

Tu peux penser simplement comme ça

Dans l'environnement de développement Rails?

Un mélange de notation avec et sans /

Jusqu'à présent, il y a deux notations, qui ont été obscurcies.

Lors de la description du routage Alors que dans le tutoriel Rails, ajoutez / (root) Dans Progate, il a été écrit sans / (root) (même si / est attaché dans link_to etc.)

C'est facile à comprendre Même si vous décrivez le routage dans l'expression Progate sans /

  get 'help',      to: 'static_pages#help'	# help -> /Le résultat de l'exécution est le même même avec de l'aide
  get 'about',     to: 'static_pages#about'
.
.
.  

Si vous vérifiez le routage réel Vous pouvez voir que / (root) est terminé

$ 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
.
.
.

** L'une ou l'autre notation convient car Rails la complétera à elle seule. Le résultat du traitement interne ressemble à un chemin absolu basé sur / **

L'assistant de chemin renvoie-t-il un chemin relatif?

En outre, l'assistant de chemin qui sera pris en charge dans le didacticiel Rails. Le gars que `la ressource apporte

Si vous vous référez à ce qui suit Similaire à la description du routage L'assistant de chemin est-il un chemin absolu basé sur ** /? Semble revenir **

2.3 Aide aux chemins et URL La création d'un routage ingénieux met de nombreux assistants à la disposition des contrôleurs de votre application. Prenons les ressources de routage: les photos à titre d'exemple.

photos_path renvoie / photos new_photo_path renvoie / photos / nouveau edit_photo_path (: id) renvoie / photos /: id / edit (edit_photo_path (10) renvoie / photos / 10 / edit) photo_path (: id) renvoie / photos /: id. (Si photo_path (10), / photos / 10 sera retourné) Chacun de ces assistants _path a un assistant _url correspondant (tel que photos_url). ** L'assistant _url diffère en ce que le nom d'hôte actuel, le numéro de port et le préfixe de chemin sont précédés de _path. ** **

Rails Routing-Rails Guide

Est-ce une passe absolue? Est-ce un chemin relatif?

Le chemin géré par Rails est-il un chemin absolu? Est-ce un chemin relatif? En pensant Les sites suivants ont été utiles

[Pour les débutants] Expliquez la différence entre le chemin absolu et le chemin relatif à l'aide d'illustrations! | webliker

En d'autres termes, le chemin / ... que Rails gère est ** Chemin de route relatif **, comme un chemin absolu basé sur le chemin de route (relatif, virtuel? Route) ** j'ai compris

Puisque la transition de l'environnement de développement à l'environnement de production est attendue (Dans le premier exemple, le répertoire de base a été décidé de se déplacer vers un autre répertoire de ville) Ce n'est pas une bonne idée d'utiliser la notation de chemin complet dans l'environnement de développement Et pour éviter la vulnérabilité des chemins relatifs aux changements structurels Le chemin relatif racine serait pratique

L'assistant URL est-il un chemin absolu?

Si vous vous référez à nouveau au guide Rails ci-dessus

Alors que l'assistant de chemin renvoie un chemin relatif racine L'assistant url est dans l'environnement dans lequel il est placé (dans l'environnement de production, cela dépend du serveur dans l'environnement de production) ** Probablement obtenir et renvoyer le chemin complet **

Reference:

Utilisation correcte de la méthode path et de la méthode _url --Qiita

Pouvez-vous expliquer la différence? Différence entre "chemin complet", "chemin absolu" et "chemin relatif" Flapisme

Recommended Posts

L'assistant de chemin (_path) renvoie-t-il un chemin relatif? Pass absolu? : Mémorandum du tutoriel Rails
Qu'est-ce qu'un terminal? -Chemin absolu et chemin relatif-
Mémorandum du didacticiel Rails 1
Tutoriel Rails Memorandum 2
PATH ne passe pas ... La cause est le code du caractère
Mémorandum du didacticiel Rails (Chapitre 3, 3.1)
Un mémorandum de la procédure de définition du chemin de la variable d'environnement "JAVA_HOME"
Registres du didacticiel Rails et mémorandum n ° 0
L'histoire du refactoring avec un assistant personnel pour la première fois dans une application Rails
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 1)
Que faire lorsque Cloud 9 est plein dans le didacticiel Rails
J'ai créé une fonction de réponse pour l'extension Rails Tutorial (Partie 5):
Comment identifier le chemin sur lequel il est facile de se tromper
[Auto-apprentissage] Création d'un portfolio (application d'origine) après avoir terminé le didacticiel Rails