Rails 1.2, quoi de neuf ?
Posté le 8 décembre 2006 à 18:24
Avec l’arrivée de cette nouvelle version de Ruby on Rails nous avons droit à notre lot de nouveautés, je ne vais pas reproduire le changelog ici mais voici les innovations majeurs de cette mouture, pour le détail, direction le site de développement.
ActiveRecord
- Ajout de la possibilité de passer un Hash en paramètre à la méthode find pour l’option conditions. Chaque clef du Hash correspond à un attribut et ils sont joint par des AND.
- Ajout de la méthode find_or_initialize_by_X qui complète find_or_create_by_X en retournant un nouvelle objet si la recherche ne donne pas de résultat mais sans le sauver.
- Passé un record ou une liste de record à une conditions extrait directement les id.
- Autorise niq => true avec une association has_many :through.
- Il est maintenant possible d’ajouter un record à une association has_many :through avec les méthodes <<, push et concat en créant le record de jointure.
- Ajout du support de delete à l’association has_many :through.
- L’association has_one support le paramètre dependent avec les options destroy, delete, et nullify.
- Il est possible d’obtenir un lock exclusif sur un enregistrement en utilisant le paramètre lock des méthodes de recherche ou avec la méthode lock! d’un record.
ActionPack
- Il est maintenant possible d’accéder aux attributs avec RJS.
- Les formulaires fonctionnement comme des blocks (et non plus avec end_form_tag).
- Ajout des mois et années à la méthode distance_of_time_in_words.
- En cas d’erreur le fichier 500.html est rendu par défaut.
- Il est possible d’exclure certaine extensions du rendu avec layout.
- RESTful tient compte automatiquement de la valeur de params[:format] si il est spécifié.
- Il est possible d’enregistrer de nouveaux MIME types pour une extension.
- Ajout du filtrage de certains paramètres et attributs dans les logs avec filter_parameter_logging (password par exemple, ).
- Le système de routage a été réécrit.
- Dépréciation de certains méthodes, il faut maintenant utiliser les méthodes et non pas les variable de classe tel que @session ou @request.
ActiveSupport
- Il est possible de faire en sorte qu’une constante soit réinitialisé après chaque requête avec Module#unloadable.
- Avec Module#alias_attribute il est possible de créer des alias pour les attributs.
- Enumerable#sum calcule une somme depuis un Array.
- Array#to_s(:db) produit une liste séparé par des virgules.
- Il est maintenant possible d’utiliser Module#alias_method_chain au lieu de deux fois Module#alias_method.
- Division dûn Array avec split.
- Création d’un Hash avec from_xml.