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

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

<!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

<%= 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

<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

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

<%= 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:

validates_uniquess_of
validates_format_of
validates_inclusion_of
validates_exclusion_of
validates_length_of
validates_numericality_of
validates_presence_of
validates_associated

exemple

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

before_filter :encoder_iso
def encoder_iso
 headers[["Content-Type"]] = "text/html; charset=iso-8859-1"
end