Edge Rails: O que vem por aí?

Carlos Brando
Nome do Jogo
Published in
1 min readSep 24, 2007

Duas novidades para a próxima versão do Rails.

Especificando a ordem de carga de plugins

Hoje o máximo que podemos fazer com plugins é informar ao Rails quais devem ser carregados. No environment.rb:

config.plugins = %W(exception_notification ssl_requirement)

A partir da próxima versão do Rails este trecho de código também será usado para definir a ordem em que os plugins devem ser carregados.

Para isto, o método passou a aceitar o símbolo :all, facilitando o preenchimento do método e evitando o trabalho de listar todos os plugins. Veja alguns exemplos de uso:

config.plugins = [:exception_notification, :ssl_requirement, :all]

Neste caso só importa para mim que os dois primeiros plugins carreguem nesta ordem, os demais não interessam.

config.plugins = [:exception_notification, :all, :ssl_requirement]

Agora, fiz diferente. Quero que sempre o Rails carregue primeiro o plugin exception_notification e por último o plugin ssl_requirement.

Uma maneira melhor de interceptar erros

A pior coisa que pode acontecer em nosso software é uma horrível página com uma mensagem de erro. Por isto é sempre bom se preparar para estes casos. Na nova versão do Rails teremos uma nova forma de tratar exceções geradas em uma action:

class ApplicationController < ActionController::Base 
rescue_from User::NotAuthorized, :with => :deny_access
rescue_from ActiveRecord::RecordInvalid, :with => :show_errors
protected
def deny_access
# …
end
def show_errors(exception)
# exception.record.new_record?
end
end

Muito simples, não é?

Originally published at nomedojogo.com on September 24, 2007.

--

--

Carlos Brando
Nome do Jogo

Programmer, CTO at @enjoei, Author of two books about Ruby on Rails, and Host of the @grokpodcast.