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:
[source:ruby] config.plugins = %W( exception_notification ssl_requirement ) [/source]
A partir da próxima versão do Rails esta 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:
[source:ruby] config.plugins = [ :exception_notification, :ssl_requirement, :all ] [/source]
Neste caso só importa para mim que os dois primeiros plugins carreguem nesta ordem, os demais não interessam.
[source:ruby] config.plugins = [ :exception_notification, :all, :ssl_requirement ] [/source]
Agora, fiz diferente. Quero que sempre o Rails carregue primeiro o plugin exception_notification e por último o plugin ssl_requirement.
Para ver a referencia no Rails Trac, clique aqui.
Uma maneira melhor de interceptar erros
A pior coisa que pode acontecer em nosso produto é 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:
[source:ruby] 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 [/source]
Muito simples, não é?
Para ver a referencia no Rails Trac, clique aqui.