↓ Archives ↓

Posts Tagged → named_scope

[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