2011-01-20 4 views

Respuesta

15
scope :most_recent, order(created_at: :desc).limit(10) 
+3

¿Los ámbitos son feos? Jaja. No es tan feo como los métodos de clase – idrinkpabst

+0

¿Cómo se sube la votación? ¿Los ámbitos realmente están saliendo? –

12

Uso alcances

# Ruby 1.8 style 
scope :recent, lambda { |num| order('created_at DESC').limit(num) } 

# Ruby 1.9/2.0 style 
scope :recent, ->(num) { order('created_at DESC').limit(num) } 

Ejemplo Uso:

<% Organization.recent(10).each do |organization| %> 
    <li><% link_to organization.name, organization %></li> 
<% end %> 
+0

El uso de 1.9/2.0 es el método correcto para usar Scopes, incluso de acuerdo con la Guía de mejores prácticas de Rails. –

0

Si desea realizar esta operación en asociación, puede limitar directamente el número de reco rds recuperados de la asociación

class School 
has_many :students -> order(created_at: :desc).limit(10) 
end 
Cuestiones relacionadas