Я скопирую код ниже, чтобы вы увидели, что я ожидал.
Запрос построен с OR
и пустые params
не включены (ни их значения, ни объединение).
def self.filtering(name, country, category)
query, join_array, query_string = self, [], []
unless name.blank?
query_string << " users.name = :name"
end
unless country.blank?
query_string << "addresses.country = :country"
join_array << :addresses
end
unless category.blank?
query_string << "hobbies.category = :category"
join_array << :hobbies
end
join_array.each do |q|
query = query.joins(q)
end
q.where(query_string * " OR ", :name => name, :country => country, :category => category)
end