Method: EnumTable::Record::ClassMethods#expand_hash_conditions_for_aggregates
- Defined in:
- lib/enum_table/record.rb
#expand_hash_conditions_for_aggregates(attrs) ⇒ Object
Enables .where(name: value) for enums.
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 |
# File 'lib/enum_table/record.rb', line 116 def (attrs) # :nodoc: conditions = super enums.each do |name, reflection| if conditions.key?(name) value = conditions.delete(name) elsif conditions.key?((string_name = name.to_s)) value = conditions.delete(string_name) else next end if value.is_a?(Array) id = value.map { |el| reflection.id(el) } else id = reflection.id(value) end conditions[reflection.id_name] = id end conditions end |