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
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 (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 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
/
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 /
**
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. ** **
Le chemin géré par Rails est-il un chemin absolu? Est-ce un chemin relatif? En pensant Les sites suivants ont été utiles
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
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
Recommended Posts