Edge Rails: O que vem por aí?
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.