Skip to content

Instantly share code, notes, and snippets.

@isuke
Last active March 2, 2023 08:40
Show Gist options
  • Save isuke/92b81b8835a95404696dd8717f6d57c0 to your computer and use it in GitHub Desktop.
Save isuke/92b81b8835a95404696dd8717f6d57c0 to your computer and use it in GitHub Desktop.
Task.select(
Arel::Nodes::NamedFunction.new(
'to_char',
[
Task.arel_table[:created_at],
Arel::Nodes.build_quoted('YYYY')
]
).as('year')
)
# => SELECT to_char("tasks"."created_at", 'YYYY') AS year FROM "tasks"
Task.where(
Arel::Nodes::InfixOperation.new(
'->',
Task.arel_table['attr_values'],
Arel::Nodes.build_quoted('foo')
).eq(
'bar'
)
)
# => SELECT "tasks".* FROM "tasks" WHERE "tasks"."attr_values" -> 'foo' = 'bar'
Task.order(Arel::Nodes::InfixOperation.new('=', Task.arel_table['id'], 123).desc)
# => SELECT `tasks`.* FROM `companies` ORDER BY `tasks`.`id` = 123 DESC
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment