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 inject
which 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.
There is also a useful plugin for this.
conditions_helper
It helps to generate complex conditions.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With