В моем приложении rails я выполняю запрос на объединение, используя Model.find_by_query
Поскольку таблицы имеют разное количество столбцов, я использую виртуальные столбцы.
Мой запрос выглядит как
"SELECT id, 'N/a' AS start_time, 'N/a' AS end_time, 'N/a' AS
STATUS , project_id, spent_on AS DATE, user_id, hours AS spent_time, comments AS
COMMENT , activity_id
FROM table1
WHERE spent_on > DATE_ADD( CURDATE( ) , INTERVAL -30
DAY )
AND user_id =80
UNION (
SELECT id, start_time, end_time,
STATUS , project_id, DATE, user_id, spent_time,
COMMENT , activity_id
FROM table2
WHERE user_id =80
AND DATE > DATE_ADD( CURDATE( ) , INTERVAL -30 DAY )
)"
Я получаю правильный вывод при выполнении запроса в mysql, но выполнение того же запроса с Model.find_by_sql дает мне другой вывод
Это вывод, который я получаю при выполнении запроса в mysql

, в то время как Model.find_by_sql () возвращает только несколько столбцов,
<Task id: 6153, start_time: "2000-01-01 00:00:00", end_time: "2000-01-01 00:00:00", project_id: 6, spent_time: 10.0, user_id: 80, activity_id: 9>
Также обратите внимание на несоответствие значений.вместо «N / A» я получаю «2000-01-01 00:00:00» в полях времени.
Я понял, что «N / A» преобразуется в «2000-01-01 00:00:00 ", потому что тип поля - время.поэтому Rails преобразует его в некоторое значение времени.
Но могу ли я переопределить это?
Как получить желаемый результат?любой другой способ выполнения таких необработанных запросов?
Комментарии, пожалуйста?
Thnx.