2009-07-24 4 views
3

Je crée un site personnel avec Ruby on Rails. Pour la plupart, RoR est l'outil parfait, permettant des billets de blog, des commentaires, etc tous plutôt facile.Création de pages non standard avec Ruby on Rails

Cependant, je veux avoir quelques pages qui ne nécessitent aucun modèle spécifique. Une page "À propos de moi", par exemple, est nécessaire, mais ne justifie pas son propre modèle/contrôleur. De plus, ces pages «singleton» seront liées à ma mise en page par défaut et doivent être accessibles même si aucun objet n'est créé.

Existe-t-il un bon moyen de gérer cela? J'ai vu de nombreux sites RoR qui ont des pages simples tout en conservant de jolies URL, mais jamais un exemple de la façon dont il est structuré. Enfin, est-il possible de rendre ces pages uniques dynamiques? Je préfère ne pas avoir html statique si du tout évitable.

Répondre

2

Je crée généralement un contrôleur "statique", par exemple un AboutController.

ruby script/generate controller about 

Puis-je créer autant que mes actions sur les pages: index, contact, terms ... Puis-je ajouter un itinéraire générique dans mon dossier routes.rb.

map.about 'about/:action', :controller => "about" 

Dans mes pages, je référence une seule page comme

<%= link_to "Contact", about_path(:action => "contact") %> 

Parce qu'ils sont des pages statiques, vous pouvez aussi envisager de les mettre en cache dans votre contrôleur.

class AboutController < ApplicationController 
    caches_page :index, :contact, ... 
end 

Cette architecture convient parfaitement à la plupart des pages statiques. Si vous voulez des pages "semi-statiques", vous pouvez envisager de charger dynamiquement le contenu de la base de données.