6
votes

Comment mettre en œuvre des URL "courtes" de vanité imbriquées dans des rails?

Je comprends comment créer une URL de vanité dans des rails afin de traduire http://mysite.com/forum/1 dans http://mysite.com/some-forum-name

Mais j'aimerais prendre une étape plus loin et que vous obtiendrez le travail suivant (s'il est possible du tout):

au lieu de: http://mysite.com/forum/1/board/99/thread/321

Je voudrais dans la première étape pour arriver à quelque chose comme ceci: http://mysite.com/1/99/321

et en finalement, l'avez-la comme http://mysite.com/some-forum-name/some-board-name/this-is-the-thread-subject . .

est-ce possible?


1 commentaires

L'acheminement des ressources, le routage imbriqué et l'acheminement peu profond contiennent tous le nom de la ressource dans le chemin, de sorte que si vous ne voulez que des identifiants ou un nom de forum sur le chemin, vous devez effectuer un routage régulier, probablement avec des paramètres délimités. .


3 Réponses :


2
votes

1 commentaires

C'est ce que j'ai lu, mais je ne peux pas sembler saisir des exemples et des descriptions disponibles ce qui devrait conduire aux résultats que je recherche. Est-ce la nidification peu profonde? :a beaucoup? Ou à l'aide de cartes.connect et de caractères génériques (que certaines personnes disent que vous ne devriez pas utiliser) ... un peu à la recherche d'un indice dans la bonne direction ici.



1
votes

Peut-être essayez peut-être quelque chose comme xxx pré>

puis dans votre contrôleur, avez p> xxx pré>

avis que vous pouvez avoir ce modèle_id être quelque chose (le Nom dans ce cas) P>

à votre vue, vous pouvez utiliser P>

<%= link_to my_thread_path(@forum, @board, @thread) %>


0 commentaires

5
votes

Pour avoir ce travail "bien" avec les aides URL de rails, vous devez remplacer to_param code> dans votre modèle: xxx pré>

permalink code > est généré par peut-être un avant_save code> p> xxx pré>

La raison pour laquelle vous créez un permalink est parce que, éventuellement, peut-être, vous aurez un titre Ce n'est pas une URL sympathique. C'est là que paramétrage code> est entré dans. P>

Maintenant, comme pour trouver ces messages en fonction de ce que permalink code> est que vous pouvez soit aller à l'itinéraire facile ou difficile Route. P>

Route simple forte> p>

Définir to_param code> légèrement différemment: p>

get ':forum_id/:board_id/:topic_id', :to => "topics#show", :as => "forum_board_topic"


0 commentaires