Développement Web Ruby
par Sylvain CLAUDEL

Derniers posts

Synthese vocale en ruby avec espeak-ruby (espeak + lame)

Date d'édition 2010-10-21 à 14:35

Un gem vient de sortir, il utilise les librairies espeak et lame. Il génére un MP3 correspondant à du texte :

https://rors.org/2010/10/21/espeak-ruby.html

Essayez la demo c'est terrible (touche ENTER avec avoir taper votre texte)

Tutorial Rubyonrails 3 - Partie 2 - Création des models (rails generate model)

Date d'édition 2010-10-18 à 19:45

Partie 2 – Rails3 -  Création des models (rails generate model)

N’hésitez à mettre des commentaires / à corriger mes fautes / à rajouter des choses !

Allons-y notre blog a besoin de quelques models :

reader : celui qui laissera un comments sur un post.
post : un article du blog, il possède plusieurs comments.
comment : les commentaires des readers sur un post.

J 'ai volontairement mis en gras des termes pour qu'apparaissent les relations entre les models (ce que nous verrons la prochaine fois).

Comme nous l’avons vu plus haut nous allons utiliser : Rails generate model

La syntaxe est :

Rails generate model monmodel champ:type champ:type...

Voici les types disponibles:
  • string      (chaine 255 caractères)
  • text      (texte sans limite de caractère)
  • datetime    (champs date heure)
  • date      (champs date)
  • integer      (entier)
  • numeric     (champs pour des nombres avec précision)
  • float      (nombre décimal, à virgule...)
  • boolean     (booléen : true / false)

Pour notre blog:

rails generate model reader pseudo:string www:string
rails generate model post title:string content:text visible:boolean
rails generate model comment content:text visible:boolean

Nous avons nos models, mais que faire avec des models ?
Ils servent à faire le lien avec la base de données, à gérer les relations entre les models. On ne manipule quasiment plus de sql.

Executez les migrations, nous verrons plus tard de quoi il s’agit mais faites-le !
rake db:migrate

Vous pouvez tester les lignes de code qui suivent en lancant la console (pour quitter la console rails : tapez exit) :

rails console ou rails c

Pour créer un article :

post = Post.new(:title => “Mon titre”, :content => “contenu de mon article”, :visible => false)
post.save

Pour chercher un article par son ID :

post = Post.find(1)
ou
post = Post.where(:id => 1).first

Pour chercher un article par son title :

post = Post.where(:title => “Mon titre”).first

Pour le supprimer :

post.destroy

Rails (ActiveRecord pour être précis) se charge de construire les requêtes sql pour nous.
Attention si vous voyez find_all_by... ou find(:all) c’est vieux c’est rails 2 :-p

Maintenant que vous avez créé vos models vous pouvez aller les voir dans monblog/app/models .

Vous pouvez ajouter des méthodes d’instances (qui s’applique sur l’objet instancié) et des méthodes de classes dans vos models.

Exemple pour notre blog :

class Post < ActiveRecord::Base
 # Méthode d’instance qui renvoie le nombre de commentaire
 def nb_comment
   return self.comments.length
 end

 # Méthode de classe (précédé de self. ) qui affiche “Méthode de classe”
 def self.nb_post
   return Post.all.length
 end
end

Vous pouvez appeler votre méthode d’instance de cette manière (sur un objet instancié)

post = Post.find(1)
post.nb_comment

Et votre méthode de classe comme ceci (directement sur la classe) :

Post.nb_post

Attention ces 2 méthodes devraient être des scopes, c’est plus adapté mais c’était pour l’exemple.

Prochainement Partie 3 – Création des relations entre les models (détail relation et migration)

Phusion Passenger 3.0.0 vient de sortir en version finale

Date d'édition 2010-10-18 à 13:32

Tout est dans le titre : passenger, le serveur rubyonrails vient de sortir dans sa dernière version (3.0.0) pour l'installer :

sudo gem install passenger

L'article sur le blog officiel : https://blog.phusion.nl/2010/10/18/phusion-passenger-3-0-0-final-released/

Installation du gem sqlite3-ruby - sqlite3-ruby only supports sqlite3 versions 3.6.16+, please upgrade!

Date d'édition 2010-10-14 à 15:37

Vous êtes sous debian ou une vieille ubuntu et vous avez ce problème :

sqlite3-ruby only supports sqlite3 versions 3.6.16+, please upgrade!

Pas de panique, il faut compiler sqlite3 puis l'installer puis installer le gem sqlite3-ruby :

wget https://www.sqlite.org/sqlite-amalgamation-3.7.3.tar.gz

tar xzvf sqlite-amalgamation-3.7.3.tar.gz 

cd sqlite-3.7.3 

./configure

make

sudo make install

sudo gem install sqlite3-ruby

Suivez ParisWeb 2010 en live !

Date d'édition 2010-10-14 à 08:54

Développement ruby et geekeries - rivsc