Используя чистый Arel (не Rails / ActiveRecord), существует «отличный» метод:
Arel::VERSION # => '3.0.2'
posts = Arel::Table.new(:posts)
posts.project(posts[:title])
posts.distinct
posts.to_sql # => 'SELECT DISTINCT "posts"."title" FROM "posts"'
Любопытно, что «отличный» метод не является цепным, как другие методы Arel.