Shiny happy people coding

Codons avec le sourire

Vivre avec Rails Edge #19

| Comments

Traduction de la news #19

Le rapport de cette semaine couvre les changements du 29 Avril 2008 au 4 Mai 2008 (jour correspondant à l’enregistrement de Rails Envy podcast).

change_table pour les migrations d’ActiveRecord

Merci à Jeff Dean, qui a aussi blogué au sujet de la nouvelle fonctionnalité change_table des migrations d’ActiveRecord. Vous pouvez donc maintenant changer une table avec un block comme ceci :

change_table :videos do |t| t.add_timestamps t.add_belongs_to :goat t.add_string :name, :email, :limit => 20 t.remove_column :name, :email # prend de multiples arguments t.rename :new_name t.string :new_string_column # execute avec le changement de nom de la table end

Parmis les principaux points à noter :

  • add_XXX permettant d’ajouter une nouvelle colonne, exemple : add_string qui ajoutera un nouveau champs string.
  • Bien-sûr, add_timestamps permet d’ajouter les champs datetime magics created_at et updated_at
  • remove_column peux dorénavant prendre plusieurs arguments.
  • rename qui renommera la table.

Très belle amélioration DRY proposée par Jeff Dean une fois encore.

Révision concernant cette fonctionnalité : http://github.com/rails/rails/commit/96980bd561d79824b6cb6efbcbecdcbf8785d452

ActiveRecord::Base.create prend un block comme ActiveRecord::Base.new

Youpie, maintenant vous pouvez aussi créer (ActiveRecord::Base.create) un objet ActiveRecord avec un block en argument exactement comme vous pouviez le faire avec ActiveRecord::Base.new:

@person = Person.create(params[:person]) do |p| p.name = ‘Konata Izumi’ p.age = 17 end

Merci a Adam Meehan pour ce patch.

Révision concernant cette fonctionnalité : http://github.com/rails/rails/commit/dd120ede53eaf71dee76894998a81626b7a689fc

Bugfix: change_column doit permettre d’utiliser :null => true sur les champs qui ne l’étaient pas précédement.

Vous pouvez désormais utiliser change_column dans vos migrations pour modifier une colonne en nullable si elle était précédement NOT NULL.

Ce bugfix est gentiment offert par Nate Wiger.

Révision concernant cette fonctionnalité : http://github.com/rails/rails/commit/10ef65a3b054270ed3d458ec8eb7c2b9a3e638f7

Comme toujours, vous pouvez laissez toutes suggestions pour améliorer cette série de Vive avec Rails.

Enfin merci à Chu Yeow de m’encourager dans la traduction de ses magnifiques news