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.
1 Comentário em "Edge Rails: O que vem por aí?"
[...] de viver perigosamente? Então tente desenvolver um projeto utilizando a versão de desenvolvimento do Rails, esta bem legal e com ótimos novos [...]
Deixe o seu comentário!