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