Объединить массивы условий в Rails
Я использую бета-версию Rails3, гем will_paginate и плагин geokit gem &.
Поскольку плагин geokit-rails, похоже, не поддерживает области Rails3 (включая проблему с символом: origin), мне нужно использовать синтаксис .find.
Вместо областей мне нужно объединить два набора критериев в формате массива:
У меня есть условие по умолчанию:
conditions = ["invoices.cancelled = ? AND invoices.paid = ?", false, false]
Мне может понадобиться добавить одно из следующих условий к условию по умолчанию, в зависимости от выбора пользовательского интерфейса:
#aged 0
lambda {["created_at IS NULL OR created_at < ?", Date.today + 30.days]}
#aged 30
lambda {["created_at >= ? AND created_at < ?", Date.today + 30.days, Date.today + 60.days]}
#aged > 90
lamdba {["created_at >= ?", Date.today + 90.days]}
Результирующий запрос напоминает:
@invoices = Invoice.find(
:all,
:conditions => conditions,
:origin => ll #current_user's lat/lng pair
).paginate(:per_page => @per_page, :page => params[:page])
Вопросы:
Есть ли простой способ объединить эти два массива условий (если я правильно сформулировал это)Хотя это не усугубляет проблему, есть ли СУХОЙ способ создать эти стареющие ведра?Есть ли способ использовать области Rails3 с плагином geokit-rails, который будет работать?Спасибо за ваше время.