Невозможно напрямую использовать сравнение неравенств, используя только ActiveRecord, вам придется использовать Arel, который представляет собой API более низкого уровня, на котором построен ActiveRecord. К счастью, вы можете смешивать и сочетать их большую часть времени.
time = (Time.now - 1.days).beginning_of_day
assignments = Assignment.arel_table
Assignment.where(
assignments[:created_at].gteq(time).or(assignments[:updated_at].gteq(time))
).distinct.pluck(:assignable_id)
Передача текущей даты из кода ruby в большинстве случаев является хорошим решением. Однако, если вы действительно хотите использовать функции базы данных, Арель снова здесь, чтобы помочь.
time = Arel::Nodes::NamedFunction.new('getDate', [])
# or
time = Arel::Nodes::NamedFunction.new('CURDATE', [])
# or any other function you can think of
Arel кажется более сложным, чем просто написание сырого sql на первый взгляд, но ключ - это возможность многократного использования и безопасность. Фрагменты Ареля легко использовать повторно, просто превращая их в методы. Также легко делать ошибки инъекций, используя raw sql, Arel помешает вам делать это в большинстве случаев.