В моем проекте у меня есть разные временные отрезки. Эти временные отрезки имеют такие имена, как «00-04», «04-08», «08-12», «12-16», «16-20» и «20-24» и другие. Я хотел получить все объекты временных срезов с вышеупомянутыми именами. Итак, я запрограммировал следующее:
time_slice_names = ["00-04", "04-08", "08-12", "12-16", "16-20", "20-24"]
time_slices = TimeSlice.where('name REGEXP ?', time_slice_names.join("|"))
time_slices дает мне правильные объекты в моем режиме разработки. Однако, когда я запускаю тест, у меня есть ошибки:
ActiveRecord::StatementInvalid:
SQLite3::SQLException: no such function: REGEXP: SELECT "time_slices".* FROM "time_slices" WHERE (name REGEXP '00-04|04-08|08-12|12-16|16-20|20-24')
Моя база данных.yml выглядит следующим образом:
development:
adapter: mysql2
database: development
encoding: utf8
pool: 5
timeout: 5000
test:
adapter: sqlite3
database: db/test.sqlite3
pool: 5
timeout: 5000
Я знаю, что моя тестовая среда использует sqlite3, тогда как моя среда разработки использует mysql2. В любом случае, где я могу выполнить вышеупомянутый запрос как на mysql2, так и на sqlite3?