Skip to content

Instantly share code, notes, and snippets.

@jasoares
Forked from wakiki/gist:3312792
Created February 15, 2013 04:55
Show Gist options
  • Save jasoares/4958647 to your computer and use it in GitHub Desktop.
Save jasoares/4958647 to your computer and use it in GitHub Desktop.
# By Steve Leung
# steve@leungs.me
class ActiveRecord::Relation
# temporarily hack for allowing combining scopes with OR
# doesn't add the join tables so need to use .includes manually
# ie. Jobship.includes(:job).or(Jobship.accepted, Jobship.declined).count
def or(*scopes)
clauses = *scopes.map do |relation|
clause = relation.arel.where_clauses.map { |clause| "(#{clause})" }.join(' AND ')
"(#{clause})"
end.join(' OR ')
where clauses
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment