Rails21 Que Hay De Nuevo
¿QUÉ HAY DE NUEVO?
Primer Edición
Ruby on Rails 2.1
¿QUÉ HAY DE NUEVO?
Primer Edición
Carlos Brando
Marcos Tapajós
© Copyright 2008 Carlos Brando. All Rights Reserved.
Primer Edición: Junio 2008
Carlos Brando
Website: www.nomedojogo.com
Marcos Tapajós
Website: www.improveit.com.br/en/company/tapajos
Chapter 1: Introducción
Chapter 1
Introducción
Alrededor dejulio de 2004 David Heinemeier Hansson lanzó la versión pública del framework Ruby on Rails, el
cual surgió como consecuencia del desarrollo de una aplicación llamada Basecamp. Después de tres años, el 7
de Diciembre de 2007 se publicó Ruby on Rails 2.0 con una cantidad importante de cambios.
Seis meses después, y durante todo este tiempo han contribuido más de 1400 desarrolladores alrededor detodo el mundo con 1600 parches para el framework. Hoy, 1ero. Junio de 2008, se ha publicado la versión 2.1
del framework Ruby on Rails.
Según David las principales novedades de esta versión son:
•
•
•
•
Timezones
Dirty tracking
Gem Dependencies
Named scope
7
Ruby on Rails 2.1 - ¿Qué Hay de Nuevo?
• UTC-based migrations
• Better caching
Como siempre, para actualizar o instalar la nueva versión:gem install rails
AGRADECIMIENTOS
A Marcos Tapajós, co-autor de este libro. De no ser por él, no podrías estar leyendo este libro.
A Daniel Lopes quien hizo la hermosa tapa de esta edición.
A toda la comunidad Brazilera de Ruby on Rails que nos ayudó directa o indirectamente con este libro,
comentando los artículos del blog o aconsejándonos. Como me gusta decir siempre, lo mejor de Rails es sucomunidad! se mantiene creando, inventando, y especialmente compartiendo.
TRADUCTORES
Este libro fue orgullosamente traducido al español por estos chicos Argentinos:
Lucas Florio - http://blog.lucasefe.com.ar/
Capítulos 8-12
Gastón Ramos - http://gastonramos.wordpress.com
8
Chapter 1: Introducción
Introducción y capítulos 1-7, 13-14
9
Ruby on Rails 2.1 - ¿Qué Hay de Nuevo?
Chapter 2ActiveRecord
ActiveRecord es una capa de mapeo objeto-relacional (object-relational mapping layer) responsable tanto de la
interoperabiliadad entre la aplicación y la base de datos como de la abstracción de los datos. (wikipedia)
EL MÉTODO SUM
Expresiones en el método sum
Ahora podemos usar expresiones en los métodos de cálculo de ActiveRecord, sum, por ejemplo:
Person.sum("2 * age")
10
Chapter 2:ActiveRecord
Cambiando el valor de retorno por defecto del método sum
En las versiones previas, cuando usábamos el método sum de ActiveRecord para calcular la suma de una
determinada columna para todos los registros de una tabla, si ningún registro correspondía con las condiciones
expresadas en el método de invocación, entonces el valor de retorno por defecto era nil.
En Rails 2.1 el valor de retornopor defecto (cuando no se encuentra ningún registro) es 0. Vea el ejemplo:
Account.sum(:balance, :conditions => '1 = 2') #=> 0
HAS_ONE
Soporte para la opción through
El método has_one ahora tiene la opción through. Esta funciona como has_many :through, pero en este caso
representa la asociación a un objeto simple ActiveRecord. Ejemplo:
class Magazine < ActiveRecord::Base
has_many :subscriptionsend
class Subscription < ActiveRecord::Base
belongs_to :magazine
belongs_to :user
end
class User < ActiveRecord::Base
has_many :subscriptions
has_one :magazine, :through => : subscriptions,
11
Ruby on Rails 2.1 - ¿Qué Hay de Nuevo?
:conditions => ['subscriptions.active = ?', true]
end
Has_one con :source_type
El método has_one :through que acabamos de ver, puede también tomar :source_type comoargumento. Voy
a intentar explicar esto a través de algunos ejemplos. Vamos comenzar con estas dos clases:
class Client < ActiveRecord::Base
has_many :contact_cards
has_many :contacts, :through => :contact_cards
end
Lo que estamos viendo hasta aquí es una clase Client la cual tiene muchos (has_many) tipos de contactos
(contacts), ya que la clase ContactCard tiene una relación polimórfica.
Para...
Regístrate para leer el documento completo.