Я создаю календарь с поддержкой базы данных в RoR, и первым шагом этого является возвращение всех событий, которые попадают в данный год. Моя таблица событий схема выглядит следующим образом:Выполнение OR и AND с помощью помощников ActiveRecord
id:integer description:string startdate:datetime enddate:datetime
В английском языке, я думаю, что это логика мне нужно выполнить, чтобы вернуть все события, которые попадают в определенный год:
(при запуске событий меньше году начала И событие конец больше начала года) ИЛИ
(когда начать событие больше, чем года начало И событие конца меньше конца года) ИЛИ
(при запуске события меньше, чем конца года И события конца больше год начала)
Первая строка получает все события, которые заканчиваются в данном Yea r, вторая строка получает все события, которые находятся в течение года, а последняя строка получает все события, которые начинаются в течение года.
Может ли эта логика быть более эффективной?
Я прочитал инструкцию ActiveRecord и создали справедливые несколько динамических сайтов, но я только должен был пойти Person.find(34)
или Person.where(name: 'Jimmy')
и действительно не знаю, как выполнить вышеупомянутую логику с вспомогательными методами ActiveRecord в!
вы можете сделать это в одном запросе, почему вы используете комбинацию из трех запросов. Вы принадлежите рубину на rails разработчику любой другой технологии? –
У меня мало практики с операторами SQL.Мне было бы интересно посмотреть, как это можно сделать с помощью одного запроса :) – Starkers