comment faire pour configurer et utiliser un Rails de voies préfixe
Lors de l'exécution de râteau routes que je vois:
Prefix Verb URI Pattern Controller#Action
articles GET /articles(.:format) articles#index
new_article GET /articles/new(.:format) articles#new
avec quelques autres, j'ai laissé de côté.
C'est parce que mes itinéraires.rb fichier:
resources :articles
Ma question est ce que c'est exactement ce Préfixe, et comment puis-je le changer?
À partir de ma compréhension c'est un raccourci de l'URI, donc, dans mon application, j'ai pu tout simplement se référer à new_article au lieu des articles/les nouvelles? Dois-je vraiment se référer à @new_article ou est-il un autre format de référence.
Deuxième question, comment puis-je modifier cela? Disons que je veux un préfixe appelé new_document au lieu de new_article pour la requête get sur l'url. Que serais-je mettre dans mon parcours.rb fichier?
OriginalL'auteur Frank Visaggio | 2014-07-08
Vous devez vous connecter pour publier un commentaire.
Chemins
Je ne suis pas sûr pourquoi il est appelé
prefix
- il doit être appelépath helper
:La ligne de fond est que lorsque vous appelez des aides comme
link_to
ouform_tag
etc - ils exigerontpaths
pour remplir les différentes actions dans votre application structure de routage.Comme Rails favorise
convention over configuration
& SEC programmation, de sens que si vous pouvez faire référence à cespath helpers
sur l'utilisation de la normeurls
, il vous permettra de faire une référence & le hasard de la route, comme l'exigePar exemple
Appel
articles_path
est loin plus puissant que le référencement/articles
chaque foisRoutes
Pour répondre à votre question correctement, vous aurez besoin pour apprécier les Rails utilise
débrouillards
de routage - fondamentalement, cela signifie que chaqueroute
helper vous créez devrait être définie autour de toutes les ressources de votre applicationEn raison de la structure MVC de Rails, ces ressources sont habituellement définis par le
controllers
vous utilisez:Pour répondre à votre question, vous devez comprendre que vous devez toujours faire référence à vos ressources comme ils sont (dans votre cas
articles
).Pour personnaliser le chemin helper, vous aurez besoin de changement la référence dans le fichier de routes, comme ceci:
Cela vous permet de définir des routes /chemin aides, vous permettant d'appeler ceux que vous souhaitez
OriginalL'auteur Richard Peck
Il vous permet d'utiliser des raccourcis tels que
new_article_path
ounew_article_url
dans vos contrôleurs et les vues. Ceux-ci viennent dans maniable quand vous faites des choses comme la redirection des utilisateurs vers une page spécifique ou de la génération de liens dynamiques.Vous pouvez modifier le préfixe par l'ajout de la
as:
option dans vos itinéraires.rb fichier. Par exemple:Ce serait de changer le préfixe de
my_new_article
.OriginalL'auteur Ege Ersoz
Vous avez raison, le préfixe est utilisé pour la construction de routes nommées, de sorte que le
resources method
dans le fichier de routes crée des routes, commearticles_path, new_article_path
etc. Pour faire référence à une route dans votre code, ajouterpath
pour le préfixe que vous voyez lorsquerunning rake routes
.Si vous souhaitez modifier les préfixes générées par les ressources de la méthode dans votre fichier de routes, l'utilisation de la
:as option
, comme ceci:resources :articles, as: :posts
Cela va générer des itinéraires comme "new_post_path' que vous pouvez utiliser dans vos vues.
Si vous souhaitez modifier le tracé de la route dans le navigateur, vous pouvez utiliser le
path
option:Qui permettra de générer des itinéraires comme
/posts/1 or /posts/new
au lieu de/articles/1 or /articles/new
, mais les routes seront encore nomméarticles_path, new_article_path
etc dans votre code. Vous pouvez utiliser les deux:path and :as
options pour modifier à la fois lapath and the prefix
de vos itinéraires des ressources.Pour modifier un itinéraire de base dans votre fichier de routes, vous pouvez simplement utiliser
:as
, comme suit:get 'messages' => 'messages#index', as: :inbox
Cela va créer de l'itinéraire inbox_path que vous pouvez utiliser dans votre code.
Espère que ça aide!
OriginalL'auteur user3376757
Vous pouvez également utiliser itinéraire étendues. Dans votre
routes.rb
fichier:/admin/articles
et tous les autres IMPURETÉS liées à des itinéraires de travailler aveclink_to
, soumettre le formulaire de contrôles, etc.OriginalL'auteur Cigano Morrison Mendez
Le préfixe peut être utilisé avec la route des aides pour générer des itinéraires dans votre application. Donc, à votre demande, le articles_path helper génère un itinéraire pour les articles de la page d'index, new_article_path est la route pour la nouvelle page de l'article, et article_path(@article) serait l'itinéraire pour afficher la page @article.
Pour spécifier un autre itinéraire, vous pouvez changer vos itinéraires.rb fichier:
Qui vous donnera:
Je pourrais envisager de changer le nom de la ressource à des documents que ça peut prêter à confusion lorsque vous renommez des itinéraires et obtenir un mélange de terminologie entre la route et le contrôleur.
OriginalL'auteur mdenomy
Vous pouvez faire quelque chose comme ceci:
et vous pouvez l'utiliser:
ou
url imprime l'url absolue (http://server.com/controller/action) en attendant chemin imprime l'url relative (
/controller/action
).OriginalL'auteur aarkerio
Vous pouvez essayer dans config.ru fichier
OriginalL'auteur Amit Agarwal