Не по умолчанию в Rails, так как существует так много опций БД (MySQL, Postgresql, MongoDB, CouchDB ...), но вы можете посмотреть такие гемы, как MetaWhere , где вы можете делать такие вещи, как :
Article.where(:title.matches => 'Hello%', :created_at.gt => 3.days.ago)
=> SELECT "articles".* FROM "articles" WHERE ("articles"."title" LIKE 'Hello%')
AND ("articles"."created_at" > '2010-04-12 18:39:32.592087')
В общем, хотя вам, вероятно, понадобится какой-то специфичный для БД код или рефакторинг вашего кода (т.е. переопределение оператора .matches для символов в MetaWhere) для работы с другой базой данных. Надеемся, что вы не будете менять свою базу данных так часто, но если вы это делаете, у вас должно быть централизованное расположение, где вы определяете эти операторы для повторного использования. Имейте в виду, что оператор или функция, определенные в одной базе данных, могут быть недоступны в другой, и в этом случае использование этой обобщенной операции является спорным, поскольку вы не сможете выполнить поиск в любом случае.