Sha256: 78828808312b3621ffa2ebf0e780255dc4ce5409e98d2e3de9c5ad453763dc09
Contents?: true
Size: 433 Bytes
Versions: 1
Compression:
Stored size: 433 Bytes
Contents
require 'order_by_ids/version' require 'order_by_ids/error' module OrderByIds # Order model by array of ids. # # ==== Returns # * <tt>ActiveRecord</tt> def order_by_ids(ids) return order(:id) if ids.blank? order_by = ['CASE'] ids.each_with_index do |id, index| order_by << "WHEN #{name.downcase.pluralize}.id='#{id}' THEN #{index}" end order_by << 'END' order(order_by.join(' ')) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
order_by_ids-0.1.0 | lib/order_by_ids.rb |