Nella mia app Rails, eseguo il loop di un array per creare un elenco di condizioni che devono essere unite da OR. Di seguito è riportato il flusso di base di come attualmente lo faccio.Arel: Come aderire in modo pulito a più condizioni con OR?
conditions = nil
set.each do |value|
condition = value.to_condition
conditions = conditions ? conditions.or(condition) : condition
end
Ovviamente, non è bello, ma io non conosco ancora completamente il mio modo di aggirare Arel. Offre un modo migliore di OR-partecipare a un insieme di condizioni generate dinamicamente?
Wow - Adoro 'iniettare ', esagerare, e in qualche modo mi è mancato per questo scenario! Grazie! :) – Matchu
Credo che crei una condizione simile a (((c1 o c2) o c3) o c4). Sai se è possibile definirli come (c1 o c2 o c3 o c4)? – Roman
https://github.com/rails/arel/blob/master/lib/arel/nodes/or.rb sembrerebbe suggerire che la concezione di Arel di 'or' è binaria. Quindi, "no" sarebbe la risposta alla tua domanda. – einarmagnus