-
-
Save Epictetus/1926202 to your computer and use it in GitHub Desktop.
monkey patch to add random_order to ActiveRecord with multi DB driver
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# for rails 3 or higher | |
module ActiveRecord | |
module Querying | |
delegate :random_order, :to => :scoped | |
end | |
module QueryMethods | |
def random_order | |
relation = clone | |
name = connection.adapter_name | |
case name | |
when 'SQLite', 'PostgreSQL' | |
relation.order_values += ['random()'] | |
when /Mysql/ | |
relation.order_values += ['rand()'] | |
else | |
raise "random_order doesn't support this adapter" | |
end | |
relation | |
end | |
end | |
end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment