Rails Find All by Birthday: How to Find Upcoming Birthdays with ActiveRecord  
  
    There are a few ways to solve this problem. However, I think the easiest is to cache the day of the year that the user is born on as an integer. If stored alongside the timestamp we can quickly get a list but properly handle the full birthday elsewhere, s...  
  
    
      Written by Sean Behan on 06/17/2012
    
  
 
  
    Reusing Scopes (Formerly Named_scope) In Rails 3  
  
    You can easily chain scopes together in your models.
class Article < ActiveRecord::Base
  scope :ordered, order('position ASC')
  scope :published, ordered.where('published = ?', true)
  scope :for_homepage, published.limit(3)
end
Article.for_homepage...  
  
    
      Written by Sean Behan on 06/17/2012
    
  
 
  
    Select Distinct in Rails with Active Record  
  
    
User.find :all, :select => "DISTINCT occupation"
  
  
    
      Written by Sean Behan on 06/17/2012
    
  
 
  
    Load All ActiveRecord::Base Model Classes in Rails Application  
  
    Here is a simple rake task which will instantiate all of your Active Record models, provided that they are located in the RAILS_ROOT/app/models directory. Interestingly, all plugin models are instantiated by default when you run the task, for instance, if...  
  
    
      Written by Sean Behan on 06/17/2012
    
  
 
  
    Rake DB Everything, Dump, Destroy, Create, Load  
  
    I'm a big fan of the yaml_db plugin. But I don't like running rake db:data:load, only to find that my db columns mismatch my model attributes, thus aborting the data import task.  To quickly add/remove columns/attributes from a model and rebuild the datab...  
  
    
      Written by Sean Behan on 06/17/2012
    
  
 
  
    Change database column names for form validations in Rails  
  
    When you use validations in Rails, db column names are used as 'keys' for error messages. This is usually the preferred way to go about it because this maps nicely to the form fields. However, if you use a virtual attribute this may not be the case. For e...  
  
    
      Written by Sean Behan on 06/17/2012
    
  
 
  
    Active Record Find Methods  
  
    Active Record find methods for selecting range from http://charlesmaxwood.com/notes-from-reading-activerecordbase/
Student.find(:all, :conditions => { :grade => 9..12 })
return a range
Student.find(:all, :conditions => { :grade => [9,11,12] })
will retu...  
  
    
      Written by Sean Behan on 06/17/2012
    
  
 
  
    Rails Plugin Acts as Taggable on Steriods  
  
    You can download it here http://github.com/suitmymind/acts-as-taggable-on-steroids as well as read usage info (which is for the most part reprinted here).
./script/plugin install http://svn.viney.net.nz/things/rails/plugins/acts_as_taggable_on_steroids
....  
  
    
      Written by Sean Behan on 06/17/2012
    
  
 
  
    Descending Sort By in Model For Active Record Hash on Created_at attribute  
  
    If you have a couple collections from the database and you want to sort it without the help of Active Record, take a look at the sort_by method on Array type. I've used this before when I have a couple of collections which are slightly different but I nee...  
  
    
      Written by Sean Behan on 06/17/2012
    
  
 
  
    Output Logger and SQL to the Rails Console in Development Mode  
  
    If you want to take a look at the SQL being generated by active record while your using the console, you can either type this into the console when it loads
ActiveRecord::Base.logger = Logger.new(STDOUT)
Or you can add it to your environment so that it'...  
  
    
      Written by Sean Behan on 06/17/2012
    
  
 
  
    Acts_as_versioned Rails Plugin  
  
    Versioning models with the acts_as_versioned plugin
cd rails/app
./script/plugin install git://github.com/technoweenie/acts_as_versioned.git
./script/generate model post title:string body:text
In your model
class Post < ActiveRecord::Base
  acts_as_ve...  
  
    
      Written by Sean Behan on 06/17/2012