2010-08-09 5 views
1

Existe-t-il une manière élégante d'avoir plusieurs noms pour une même ressource? Nous aimerions donner à l'utilisateur un choix via un paramètre de ce qu'il aimerait appeler ses "choses". C'est à dire. produits, articles, services quels qu'ils soient.Rails: plusieurs noms pour une ressource

Jusqu'à présent, je ne peux penser à l'utilisation de plusieurs voies à un seul contrôleur:

resources :products 
resources :items, :controller => :products 
resources :services, :controller => :products 

La seule chose que je peux voir est le point de vue deviendra assez complexe avoir à demander l'URL de générer basées sur les utilisateurs réglage.

Des idées ou des idées seraient appréciées!

Répondre

0

Vous ne savez pas exactement ce que vous essayez de faire, mais Rails peut faire tout le travail de génération d'URL via l'assistant url_for. Voir here

+0

si je fais url_for (@product) qui va créer des produits/1 par exemple non? L'utilisateur peut avoir choisi d'appeler les services de produits, par conséquent je voudrais url_for (@product) pour générer des services/1 Dans la DB c'est la même ressource, juste un nom différent pour cela. – tsdbrown

+0

OK, je vois. Ensuite, je vous suggère d'ajouter un attribut alias (une chaîne de caractères) aux modèles de base qui peuvent avoir des noms différents et de le remplir avec le nom sélectionné par l'utilisateur. Quand il s'agit d'obtenir l'URL vient chercher l'alias et vous devriez obtenir ce que vous voulez – bjg

Questions connexes