Ich weiß, dass es drei Hauptnotationen gibt, um der where
ActiveRecord-Methode Argumente zu liefern :
- Reine Saite
- Array
- Hash
Die Angabe and
für die where
Methode ist unkompliziert:
# 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})
Wenn ich or
für dieselbe where
Methode spezifiziere, bin ich für die Hash-Syntax verblüfft . Ist es möglich?
# 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})
arel
Antwort ist besonders gut, da dies, wie ich verstehe, zu Rails 5 hinzugefügt wird.