[RUBY] Créer un chemin à partir d'un tableau

Créer un chemin à partir d'un tableau

En plus d'utiliser l'assistant de routage, vous pouvez également créer des chemins et des URL à partir d'un tableau de paramètres. Considérez le routage suivant

ruby.rb


resources :magazines do
  resources :ads
end

Il y a des ressources: des publicités (publicités) dans des ressources: des magazines. Si vous utilisez magazine_ad_path, au lieu de passer l'identifiant numériquement Vous pouvez respectivement transmettre des instances Magazine et Ad comme arguments. Vous pouvez maintenant affiner le chemin avec les informations d'instance pour @magazine et @ad respectivement.

<%= link_to 'Ad details', magazine_ad_path(@magazine, @ad) %>

Vous pouvez également utiliser url_for pour un ensemble de plusieurs objets. Même si vous passez plusieurs objets, le routage approprié est automatiquement déterminé.

<!--@avec magazine@passer l'annonce comme argument-->
<%= link_to 'Ad details', url_for([@magazine, @ad]) %>

Dans le cas ci-dessus, Rails reconnaît que @magazine est Magazine et @ad est Ad et appelle l'assistant magazine_ad_path en fonction de celui-ci. C'est incroyable que vous reconnaissiez cela vous-même. ..

De même, les helpers tels que link_to peuvent simplement passer un objet au lieu de l'appel complet url_for.

<%= link_to 'Ad details', [@magazine, @ad] %>

Si vous souhaitez créer un lien vers un seul magazine, écrivez:

<%= link_to 'Magazine details', @magazine %>

Pour toutes les autres actions, il suffit d'insérer le nom de l'action dans le premier élément du tableau.

<%= link_to 'Edit Ad', [:edit, @magazine, @ad] %>

Cela vous permet de traiter une instance du modèle comme une URL. C'est l'un des grands avantages d'adopter un style ingénieux.

C'est incroyable que Rails génère automatiquement un chemin en passant une instance au chemin.

Guide des rails de référence

Recommended Posts

Créer un chemin à partir d'un tableau
Chargement des classes depuis Path
[Java] Conversion d'un tableau à une liste
Tableau
Impossible de créer un utilisateur à partir de l'écran d'administration Active Admin