Новое в 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'))