Carlos Brando

Nome do Jogo

Rails 2.3: Active Record

O lançamento do Ruby on Rails 2.3 está muito próximo e eu ainda não comentei sobre algumas novidades por aqui. A idéia desta série não é apenas mostrar as novas funcionalidades, mas explicar e dar exemplos de como elas funcionam na prática, mas alguns dos novos recursos são muito simples e não exigem muitos detalhes. Vejamos alguns relacionados ao Active Record.

Os callbacks do Active Record receberam uma nova implementação que permite o uso combinado das opções :if e :unless no mesmo callback. Você também pode usar um array para definir múltiplas condições:

before_save :update_credit_rating,
            :if => :active,
            :unless => [:admin, :cash_only]

O método find também ganhou uma nova opção :having para filtrar registros agrupados:

Developer.find(:all,
               :group => "salary",
               :having => "sum(salary) >  10000",
               :select => "salary")

Outra funcionalidade importante que temos de volta é o uso de um hash :conditions em relacionamentos has_many. Isto já funcionava no Rails 2.1, parou de funcionar no Rails 2.2 e está de volta no Rails 2.3.

has_many :orders, :conditions => {:status => 'confirmed'}

Todos os exemplos dados aqui funcionarão somente no Ruby on Rails 2.3 ou superior. Você pode encontrar mais detalhes sobre esta e outras novidades acompanhando a série Rails 2.3.

Comments