Question sur les sous domaines dans les routes...

1 view
Skip to first unread message

slai...@gmail.com

unread,
Jan 2, 2008, 7:32:31 AM1/2/08
to Railsfrance
Salut !
Mon problème semble simple mais je n'arrive toujours pas à trouver une
solution simple...

Je gère de manière dynamique les sous-domaines dans mon application.
Ces sous-domaines correspondent au nom d'une ville.

Je voudrais que mes URLs ressemblent à :

http://ville.serveur.com/batiment/nom_batiment

exemple :
http://paris.serveur.com/batiment/louvre

Mes routes ont cette route :

map.batiment 'batiment/:id', :controller => 'batiments', :action =>
'show'

Quand j'utilise batiment_url(nom_batiment) j'obtiens bien l'URL du
batiment mais sans la gestion du sous-domaine. Comment lui faire gérer
cette histoire de sous-domaines ? Pour l'instant j'ai créé en dur une
fonction helper qui me renvoi un lien tout fait avec les 2 arguments
nom_batiment et ville, mais j'aimerai savoir s'il y a mieux...?

Merci !
Nicolas.

Renaud (Nel) Morvan

unread,
Jan 3, 2008, 4:51:31 AM1/3/08
to Railsfrance
> Quand j'utilise batiment_url(nom_batiment) j'obtiens bien l'URL du
> batiment mais sans la gestion du sous-domaine. Comment lui faire gérer
> cette histoire de sous-domaines ? Pour l'instant j'ai créé en dur une
> fonction helper qui me renvoi un lien tout fait avec les 2 arguments
> nom_batiment et ville, mais j'aimerai savoir s'il y a mieux...?

Il y a plus simple, mais pas forcement mieux puisque pas très model
métier ce qui est dommage dans ton cas
batiment_url :host => 'paris.fr', :id => 666

Petit tips bien pratique et pas super documenté:
Dans la console tu as l'object 'app' qui permet de tester les helpers
de route

nel-mac:feedback nel$ script/console
Loading development environment.
>> app.feedback_url :id => 1, :host => 'feedback20.com'
=> "http://feedback20.com/feedbacks/1"

slai...@gmail.com

unread,
Jan 3, 2008, 5:36:28 AM1/3/08
to Railsfrance
Merci Renaud pour ta réponse et pour l'objet app dans la console, je
connaissais pas !

Je me réponds à moi-même et après pas mal de surf intensif et de
Google, j'ai trouvé et utilisé deux petits plugins que j'ai modifiés
et qui fonctionnent désormais bien à priori avec Rails 2.0.

Ces deux fichiers me permettent de spécifier un sous domaine aussi
bien pour la génération d'URL (url_for) que la reconnaissance.

Voila les deux plugins qui devraient être utiles à tous ceux qui
veulent utiliser les sous-domaines dans leur appli Rails :

http://pastie.caboo.se/134364 (pour les conditions de reconnaissance)
http://pastie.caboo.se/134365 (pour la génération)

Désormais il est possible de rajouter un bloc de conditions dans
chaque route (exemple :conditions => { :subdomain => 'www' })
et en rajoutant :subdomain => 'www' directement dans la route ou dans
url_for, la route sera aussi générée avec ce sous-domaine.

J'aime bien les histoires qui finissent bien ;).

Nicolas.

On 3 jan, 10:51, "Renaud (Nel) Morvan" <renaud.mor...@gmail.com>
wrote:
Reply all
Reply to author
Forward
0 new messages