Combinar matrizes de condições no Rails

Estou usando a versão beta do Rails3, a gem will_paginate e a geokit gem & plugin.

Como o plug-in geokit-rails parece não suportar os escopos do Rails3 (incluindo o símbolo: origin é o problema), preciso usar a sintaxe .find.

Em vez dos escopos, preciso combinar dois conjuntos de critérios no formato de matriz:

Eu tenho uma condição padrão:

conditions = ["invoices.cancelled = ? AND invoices.paid = ?", false, false]

Talvez eu precise adicionar uma das seguintes condições à condição padrão, dependendo da seleção da interface do usuário:

#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]}

A consulta resultante é semelhante a:

@invoices = Invoice.find(
  :all, 
  :conditions => conditions,
  :origin => ll     #current_user's lat/lng pair
  ).paginate(:per_page => @per_page, :page => params[:page])

Questões:

Existe uma maneira fácil de combinar essas duas matrizes de condições (se eu tiver escrito isso corretamente)Embora não esteja contribuindo para o problema, existe uma maneira mais SECA de criar esses baldes antigos?Existe uma maneira de usar os escopos do Rails3 com o plug-in geokit-rails que funcionará?

Obrigado pelo seu tempo.

questionAnswers(2)

yourAnswerToTheQuestion