Я знаю, что есть 3 основные обозначения для подачи аргументов методу where
ActiveRecord:ActiveRecord ИЛИ Hash запрос обозначения
- Pure Струнный
- Массив
- Hash
Задание and
для where
метод является прямым:
# Pure String notation
Person.where("name = 'Neil' AND age = 27")
# Array notation
Person.where(["name = ? AND age = ?", 'Neil', 27])
# Hash notation
Person.where({name: "Neil", age: 27})
Задание or
для этого же метода where
меня превзошел для синтаксиса хэша. Является ли это возможным?
# Pure String notation
Person.where("name = 'Neil' OR age = 27")
# Array notation
Person.where(["name = ? OR age = ?", 'Neil', 27])
# Hash notation DOESN'T WORK
Person.where({name: "Neil" OR age: 27})
Это полный ответ. Ответ 'isl' особенно хорош, так как это то, что добавляется к Rails 5, как я понимаю. –
Если вы не можете дождаться Rails 5, вы можете использовать этот backport этой функции для рельсов 4.2. Красиво упакован как «где-либо» gem https://github.com/Eric-Guo/where-or – Rob
Если ваш проект все еще находится в Rails 3+, вы можете попробовать rails_or gem: https: // github. ком/khiav223577/rails_or –