No
por defecto en los carriles, ya que hay muchas opciones de base de datos (MySQL, PostgreSQL, MongoDB, CouchDB ...), pero se puede comprobar fuera de joyas como MetaWhere, donde se pueden hacer cosas como:
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')
en general, sin embargo es probable que tenga que tener algún código específico DB o refactorizar su código (es decir, redefinir el operador .matches en s símbolos en MetaWhere) para trabajar con una base de datos diferente. Es de esperar que no cambie su base de datos con frecuencia, pero si lo hace, debe tener una ubicación centralizada donde defina estos operadores para su reutilización. Tenga en cuenta que un operador o función definida en una base de datos puede no estar disponible en otra, en cuyo caso tener esta operación generalizada es discutible ya que no podrá realizar la búsqueda de todos modos.
No está mal. Supongo que el signo de porcentaje podría ser común entre SQLite, Postgres y Mysql. –
Sugiera revisar el fragmento de código para leer: 'Speaker.where (Speaker.arel_table [: name] .matches ('% yson%'))' –