hmans / quick_scopes forked from internuity/quick_scopes

Quick named scopes to make your life a little easier

This URL has Read+Write access

README.rdoc

A Rails plugin to automatically add some quick named_scopes to your models.

These are especially useful for quick modifications to a query on an association.

The named_scopes

The named scopes added are:

  • order
  • limit
  • offset
  • with - alias for :include
  • where - alias for :conditions
  • random - in random order. (Possibly only works with MySQL.)
  • latest - equivalent to ORDER BY created_at DESC.
  • recently_updated - equivalent to ORDER BY updated_at DESC.

Examples

With a User model having many Posts

  # Standard association method to retrieve all posts
  user.posts

  # Order the posts
  user.posts.order('created_at')

  # Limit the results to a specific number
  user.posts.limit(5)

  # Offset the results
  user.posts.offset(5)

  # Include other associated models
  user.posts.with(:comments)
  user.posts.with(:comments, :author)
  user.posts.with({:comments => :author}, :author)

  # Limit your results with conditions
  user.posts.where(:published => true)

Note

Some of these don’t promote best practices for your code but can be very useful when working with the console.