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.