En mi aplicación Rails, recorro una matriz para crear una lista de condiciones a las que O debe unirse. A continuación se muestra el flujo básico de cómo lo hago actualmente.Arel: cómo unir varias condiciones con OR?
conditions = nil
set.each do |value|
condition = value.to_condition
conditions = conditions ? conditions.or(condition) : condition
end
Obviamente, no es hermoso, pero todavía no conozco completamente el camino de Arel. ¿Ofrece alguna forma mejor de combinar OR con un conjunto de condiciones generadas dinámicamente?
Wow - Me encanta 'inyectar', abusar de él, y de alguna manera lo perdí en este escenario! ¡Gracias! :) – Matchu
Creo que crea una condición que se parece a (((c1 o c2) o c3) o c4). ¿Sabes si es posible definirlos como (c1 o c2 o c3 o c4)? – Roman
https://github.com/rails/arel/blob/master/lib/arel/nodes/or.rb parecería sugerir que la concepción de Arel de 'o' es binaria. Entonces, "no" sería la respuesta a tu pregunta. – einarmagnus