viernes, 31 de octubre de 2008

Named Scope

Los named_scope nos sirven para definir consultas que vamos a utilizar muy a menudo, estos metodos se definen en el modelo y son estaticas o sea si definimos un named_scope llamado activos en el modelo User, lo vamos a acceder de la siguiente manera User.activos, lo que tiene de interesante los named_scope es que pueden recibir parametros, ahora vamos a ver algunos ejemplos para que sean mas faciles de entender

class User < ActiveRecord::Base

  named_scope :active, :conditions => {:active => true}
  named_scope :find_with_ids, lambda { |ids| {:conditions => ["id in (?)", ids] }} 

end

El primer named_scope que definimos(active) nos permite buscar a todos los usuarios que este activos de la siguiente manera

User.active

El segundo named_scope es un poco mas complejo, lo que nos permite es buscar a todos los usuarios que tengan un id que este en la lista que le pasamos como parametro.

user_ids = [1,2,34, 56]

User.find_with_ids(user_ids)

Esto nos debuelve la lista de usuario cuyo id sea igual a alguno de los numeros que esta en el array.

No hay comentarios: