2016-09-18 7 views
0

I Schienen verwenden, und ich möchte eine Anfrage gerne, dass:Rails-Modelle: SQL OR und Schlüsselwörter

SELECT * FROM events WHERE id = 5 AND 
active = true AND 
(current_state = 0 OR current_state = 1) 

ich etwas schreiben mag, dass:

Event.where(id:5).where(active:true).or(Event.where(current_state:)).or 
(Event.where(current_state: 1)) 

Aber wenn ich das tue, ich habe diese Anfrage:

SELECT * FROM events WHERE id = 5 AND 
active = true AND 
current_state = 0 OR current_state = 1 

Wie kann ich Klammern haben?

Antwort

1

Sie können etwas tun:

Event.where('WHERE id = ? AND active = ? AND (current_state = ? OR current_state = ?)', 5, true, 0, 1) 
+0

Dank! Und für eine LIKE, kann ich 'Event.where (" Stadt LIKE: city1 ", {city1:"% # {params [: party] [: city]}% "})'? – Alexandre

+0

Ich bin nicht sicher für Ihre Methode, aber es wird Arbeit 'Event.where (" Stadt LIKE:? ","% # {Params [: party] [: Stadt]}% ") –

Verwandte Themen