October 1st, 2007Evite repetição de código no Ruby On Rails
Um dos princípios por trás do Ruby On Rails é o DRY (Don’t Repeat Yourself), ou seja, não se repita. Ele nos fornece muitos meios de se evitar repetições, e o que mais uso pra esse propósito são os filtros.
Filtros, no Rails, definem um método que será executado antes e/ou depois de cada página daquela classe. Então, nos nossos controllers, podemos usar os filtros para executar as mesmas tarefas rotineiras em todas as páginas sem ter que repetir aquele código dentro de cada action.
Definindo um filtro
Nós temos 3 tipos de filtro à disposição: before_filter, after_filter, e around_filter. O before_filter define um método que será executado antes de carregar cada página da nossa aplicação. O after_filter define um método que será executado depois de cada página da aplicação. E, por último, o around_filter define um método que será executado antes e depois de cada página.
Vejamos um exemplo de um controller simples que usa um filtro.
class ShoppingController < ActionController::Base before_filter :nosso_metodo #imagine aqui várias actions da aplicação private def nosso_metodo @mensagem = "Esta é uma mensagem" end end
No exemplo acima, temos o controller Shopping, e antes de cada página deste controller o método nosso_metodo é chamado, por ter sido definido no before_filter. O método, então, define uma mensagem qualquer que usamos apenas de exemplo.
Leia todo o texto »