abril 20th, 2010 • 17:04
[Dica Rápida] Limpe seu Controller
Uma das boa praticas do Rails é Controller magro, Model gordo. Sei que esse assunto já é tratado a muito tempo, mais tem muita gente ainda que fica perdida.
Skinny Controller, Fat Mode é trazer toda lógica do negocio para os models, deixando seu controller e views limpas.
No seu controller você tem os seguintes Finds.
@activities = Activity.all( :conditions => { :close = 1}, :limit => 10, :order => 'urgency DESC' ) @activities = Activity.all( :conditions => { :close = 0}, :limit => 10, :order => 'urgency DESC' )
Uma forma de tirar isso do controller é usando named_scope
e deixando tudo no model.
class Activity < ActiveRecord::Base named_scope :activies, :conditions => {:close => 0}, :order => "urgency DESC" named_scope :activies_close, :conditions => {:close => 1}, :order => "urgency DESC" end
E no seu controller é só fazer referencia aos named_scope.
class ActivitiesController < ApplicationController ...... def index @activities = Activity.activies @activities_close = Activity.activies_close end ...... end
Leave a Reply
Pingback
abr 20th 2010 • 17:04
by Tweets that mention Dica Rápida] Limpe seu Controller #new #post #rails -- Topsy.com
[...] This post was mentioned on Twitter by Marcio. Marcio said: [Dica Rápida] Limpe seu Controller http://bit.ly/aGY16d #new #post #rails [...]
jun 1st 2010 • 13:06
by Tino Gomes
Pode deixar “mais clean” o model, se colocar a ordenação como escopo default, no caso
class Activity “urgency DESC”
named_scope :activies, :conditions => {:close => 0}
named_scope :activies_close, :conditions => {:close => 1}
end
Claro, que todas as consultas, agora virão ordenadas.
jun 2nd 2010 • 10:06
by marciogm
@Tino, essa de escopo default eu desconhecia.
Mais uma técnica de refatoração para deixar a coisa mais clean