In my Rails app, I loop through an array to create a list of conditions that must be joined by OR. Below is the basic flow of how I currently do so.
conditions = nil
set.each do |value|
condition = value.to_condition
conditions = conditions ? conditions.or(condition) : condition
end
Obviously, it’s not beautiful, but I still don’t fully know my way around Arel. Does it offer any better way of OR-joining a set of dynamically-generated conditions?
This is a perfect fit for an
injectwhich will give you a one-liner you can use within something else as well:conditions = set.inject { |conds, cond| conds.or(cond) }which can even be written:set.inject(&:or)which is very nice.