Ruby on Rails : router en fonction du domain et du sous-domain

Ruby logoSi vous êtes un adepte de ce fameux framework dont tout le monde parle et que tout le monde aime, je parle bien sur de Rails, ou que vous comptez simplement l’utiliser pour un de vos futurs projets, sachez qu’il possède un excellent système de routage, très simple à éditer.

Voila pour pour les explications la documentation de ruby le fait très bien.

Mais sachez juste que sur la version 2.3.5 qu’il est impossible de router vos page web en fonction du nom de domaine ou du sous-domaine.

C’est la que la magie de Ruby opère, il y a forcement une gem ou un plugin pour ça, le tout c’est de le ou la trouver.

Je vous propose d’aller voir du côté de request_routing

Pour l’installer :
ruby script/plugin install http://svn.vivabit.net/external/rubylibs/request_routing/

A utiliser c’est toute aussi simple ajouter :domain pour router un domaine et :subdomain pour router un sous-domaine.
map.connect '', :controller => 'home', :conditions => { :subdomain => 'blog' }
map.connect '', :controller => 'home', :conditions => { :domain => 'bugz.fr' }

Les options suivantes sont aussi disponible :

  • :subdomain – seulement pour le premier sous-domain)
  • :domain – pas pour les sld
  • :method – GET,POST,PUT,DELETE
  • :port - le port
  • :remote_ip – IP du client
  • :content_type – Le content-type de la requête HTTP
  • :accepts
  • :request_uri – URI
  • :protocol – choisir le protocol http:// ou https://

Par contre cela ne marche que sur les appels de type map.ressource

Articles similaires :

Mots-clefs : , , , ,

3 commentaires sur “Ruby on Rails : router en fonction du domain et du sous-domain”

  1. Zad dit :

    « Si vous êtes un adepte de ce fameux framework dont tout le monde parle et que tout le monde aime »

    Euuuh, c’est sans compter sur certains développeur (Java) alors …

    En complément d’article pour faciliter les tests sur les sous-domain en local (mac osx):

    http://intridea.com/2010/6/2/using-bind-locally-on-os-x-for-easy-access-to-subdomains

  2. Bouil dit :

    C’est vrai ça, moi j’aime pas Ruby…

    Tapestry powa ! :-p

  3. LeSanglier dit :

    Excellent tuto, merci ! :-)

Laisser une réponse