Новое в Rails 4: Поддержка "не" в запросах ActiveRecord
Интерфейс запросов ActiveRecord предоставляет механизмы, которые позволяют избежать написания SQL. Однако есть условия, в которых всегда требуется использование чистых строковых условий в where: < > или !=, зависящих от используемой базы данных. В Rails 4, был добавлен метод запроса not, чтобы исправить это.
Rails 3
Article.where("title != ?", params[:title])
Rails 4
Article.where.not(title: 'Rails 3')
# => SELECT "articles".* FROM "articles" WHERE ("articles"."title" != 'Rails 3')
Метод not в запросе может также принимать массив как аргумент, чтобы исключить значения в массиве:
Article.where.not(title: ['Rails 3', 'Rails 5'])
# => SELECT "articles".* FROM "articles" WHERE ("articles"."title" NOT IN ('Rails 3', 'Rails 5'))
Интерфейс запросов
ActiveRecord
предоставляет механизмы, которые позволяют избежать написания SQL. Однако есть условия, в которых всегда требуется использование чистых строковых условий вwhere
: < > или !=, зависящих от используемой базы данных. ВRails 4
, был добавлен метод запросаnot
, чтобы исправить это.Rails 3
Rails 4
Метод
not
в запросе может также принимать массив как аргумент, чтобы исключить значения в массиве: