Carlos Brando

Nome do Jogo

Edge Rails: O que vem por aí?

289142843_b04124fd3b

Saiu no Ryan’s Scraps.

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.

Comments