Alex Girard home in English en Francais

Merb et rangement de vos classes en sous-répertoire

Petit travail d’un soir: organiser les classes de notre application Merb dans des sous-répertoire.

Problématique

Par défaut, Merb construit ce type d’arborescence:


app
|__ controllers
	|__ ...
	|__ rockets.rb
|__ models
	|__ ...
	|__ rocket.rb

Et pour pas vous embêtez, vous entassez naturellement vos classes jusqu’à trop plein.
Maintenant, vous voulez ranger vos contrôleurs et modèles de manière plus hiérarchiques:


app
|__ controllers
	|__ ...
	|__ resource
		|__ ...
		|__ rockets.rb
|__ models
	|__ ...
	|__ resource
		|__ ...
		|__ rocket.rb

Solution

Pour faire ceci, il vous faut d’abord modifier le fichier config/router.rb, par exemple pour appeler le contrôleur de la ressource rocket:


Merb::Router.prepare do |r|
  
  r.resources :resource_rockets, :controller => "resource/rockets"

end

Vous devez déclarer le module du contrôleur dans app/controllers/resource/rockets.rb:


module Resource
  class Rockets < Application
	...
  end
end

Pour cette manipulation, il n’y a aucune modifications à apporter au modèle, il vous suffit de le mettre dans son sous-répertoire et il devrait être reconnu.

blog comments powered by Disqus