Blue Cup 1 (photo by woodsy)I’m writing this post for two reasons:

  1. For some reason, I couldn’t find a lot of information on ActiveRecord and SELECT DISTINCT().
  2. I’m hoping some Ruby / ActiveRecord guru will stumble across this and provide a better solution.

Recently, I was working on a project written in Ruby with ActiveRecord that required me to draw a list of host names from a database and perform some actions on them. The actions aren’t really important here. What I had a hard time finding was the ActiveRecord way of performing a SELECT DISTINCT() SQL query. My search came up empty, so I was forced to use the find_by_sql() method below. Obviously, I’ve changed the code to make it generic and not violate any non-disclosure agreements I might have.

records = Class.find_by_sql(["SELECT DISTINCT(hostname) FROM table"])

This code works just fine, but it lacks a certain elegance. One thing that really bothers me is that I have to hardcode the table name into this line of code. If we make a change to the table name some time down the road, this line will have to be found and modified. Blech.

Interested in learning more about network and system administration?
Get Slaptijack updates for free.
Related Posts (Automatically Generated)