utilisation de Ror ****************** Les commandes ============= génération d'une appication RoR ------------------------------- rails nameOfapplication lancer le server RoR -------------------- script/server génération d'un model --------------------- script/generate model nameOfComposant génère au passage le fichier de migration du composant génération d'un fichier de migration de database ------------------------------------------------ script/generate migration NameOfMigration**S** passage d'une version par migration ----------------------------------- rake db:migrate VERSION=xxx passage des fixture ------------------- rake db:fixtures:load FIXTURES=NameOfMigration**S** exemple de fixture ------------------ .. code-block:: bash utilisateur1: # Un identifiant quelconque pour l'enregistrement en cours nom: Riri # La valeur du champ "nom" age: 12 # La valeur du champ "age" utilisateur2: nom: Fifi age: 13 utilisateur3: nom: Loulou age: 14 génération d'un controler ------------------------- script/generate controller nameOfComposant génère au passage la vue Trucs et astuces View ===================== découper le code des vues -------------------------- Il est possible de regrouper une feuille rhtml de base dans *app/views/layout* Vous pouvez placer une feuille *application.rhtml* mais aussi des feuilles du type *nameOfComposant.rhtml* exemple .. code-block:: bash <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head> <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> <title>Notes: <%= controller.action_name %></title> <%= stylesheet_link_tag 'scaffold' %> </head> <body> <p style="color: green"><%= flash[[:notice]] %></p> <%= yield %> </body> </html> Dans votre répertoire *app/views/nameOfComposant* vous pouvez rajouter des feuilles *_nameXXX.rhtml* correspondant à des bouts de feuilles rhtml que vous souhaitez utiliser dans plusieurs feuilles rhtml. exemple _form.rhtml .. code-block:: bash <%= error_messages_for 'notes' %> <!--[[form:notes]]--> <p><label for="notes_titre">Titre</label><br/> <%= text_field 'notes', 'titre' %></p> <p><label for="notes_info">Info</label><br/> <%= text_area 'notes', 'info' %></p> <!--[[eoform:notes]]--> exemple d'utilisation .. code-block:: bash <h1>Editing notes</h1> <% form_tag :action => 'update', :id => @notes do %> <%= render :partial => 'form' %> <%= submit_tag 'Edit' %> <% end %> <%= link_to 'Back', :controller => 'test', :action => 'index' %> modification du routage ======================= Il est possible de modifier le routage afin de lancer un controller spécifique pour l'adresse localhost:3000 pour cela ajouter dans le fichier config/routes.rb la ligne .. code-block:: bash map.connect //, :controller => "login"}} (lance le controller login at action index) puis de supprimer le fichier public/index.html gestion css javascript ====================== possibilité d'ajouter dans la partie head d'un rhtml .. code-block:: bash <%= javascript_include_tag :defaults %> <%= stylesheet_link_tag("styles") %> Trucs et astuces Model ====================== Ajout d'une gestion de control ------------------------------ vous pouvez utiliser dans les fichiers model des validations: .. code-block:: bash validates_uniquess_of validates_format_of validates_inclusion_of validates_exclusion_of validates_length_of validates_numericality_of validates_presence_of validates_associated exemple .. code-block:: bash validates_presence_of :nom, :prenom validates_format_of :mail, :with => /^([[^@\s]]+)@((?:[[-a-z0-9]]+\.)+[[a-z]]{2,})$/, :message => 'mauvais format d'email' Vous pouvez obtenir les errors par Object.errors Trucs et astuces Controller =========================== ne pas avoir de problème avec les caractères accentués dans le fichier application.rb, dans la classe ApplicationController ajouter .. code-block:: bash before_filter :encoder_iso def encoder_iso headers[["Content-Type"]] = "text/html; charset=iso-8859-1" end