Module: Surus::Array::Scope
- Defined in:
- lib/surus/array/scope.rb
Instance Method Summary collapse
-
#array_has(column, *values) ⇒ Object
Adds where condition that requires column to contain all values.
-
#array_has_any(column, *values) ⇒ Object
Adds where condition that requires column to contain any values.
Instance Method Details
#array_has(column, *values) ⇒ Object
Adds where condition that requires column to contain all values
Examples:
User.array_has(:permissions, "manage_users")
User.array_has(:permissions, "manage_users", "manage_roles")
User.array_has(:permissions, ["manage_users", "manage_roles"])
10 11 12 |
# File 'lib/surus/array/scope.rb', line 10 def array_has(column, *values) where("#{connection.quote_table_name(table_name)}.#{connection.quote_column_name(column)} @> ARRAY[?]#{array_cast(column)}", values.flatten) end |
#array_has_any(column, *values) ⇒ Object
Adds where condition that requires column to contain any values
Examples:
User.array_has_any(:permissions, "manage_users")
User.array_has_any(:permissions, "manage_users", "manage_roles")
User.array_has_any(:permissions, ["manage_users", "manage_roles"])
20 21 22 |
# File 'lib/surus/array/scope.rb', line 20 def array_has_any(column, *values) where("#{connection.quote_table_name(table_name)}.#{connection.quote_column_name(column)} && ARRAY[?]#{array_cast(column)}", values.flatten) end |