Então @j0nny, precisaria ver melhor exatamente qual é o uso disso em sua aplicação. De qualquer forma vou contribuir com meus 2 cents aqui, aí você vê o que acha da abordagem, beleza?
Desde já, como o código é de improviso aqui e não foi testado, pode ser que tenha algum probleminha... o html também não será o mais caprichado XD
Imagine a seguinte lógica: um cliente só pode ver seus pedidos, caso eles tenham sido realizados dentro de um determinado período (que me parece ser algo próximo ao que você esta buscando).
#app/views/clientes/show.html.erb
Nome: <%= @cliente.nome %><br />
<%= pedidos_do @cliente %>
No modelo de clientes, eu faria a lógica de busca:
#app/models/cliente.rb
class Cliente < ActiveRecord::Base
has_many :pedidos
def pedidos_feitos_no periodo
pedidos.where "data >= #{periodo.inicio} and data <= #{periodo.fim}" # um between também vai xD
end
end
Agora o helper não precisa ser muito inteligente sobre o que quer dizer um período, mas pode usar períodos, clientes, pedidos a vontade:
#app/helpers/clientes_helper.rb
module ClientesHelper
def pedidos_do cliente
pedidos_html = "Pedidos: <div id='pedidos'>"
periodo = Periodo.logica_marota_para_obter_periodo_dependendo_do_seu_dominio
pedidos = cliente.pedidos_feitos_no periodo
pedidos_html << render(pedidos)
raw(pedidos_html << "</div>")
end
end
E para isso funfar, precisa de um partialzinho para exibir os pedidos:
#app/views/pedidos/_pedido.html.erb
<div id="pedido_<%= pedido.id %>">
R$ <%= pedido.preco %><br />
</div>
Uma outra observação que eu gostaria de fazer com a informação que você me passou até aqui: está me parecendo que uma data estar dentro de um certo período é algo crítico para a sua lógica/modelo. Se for o caso, eu provavelmente levaria essa preocupação para lá:
#app/models/periodo.rb
class Periodo
def contem? data
# provavelmente sua lógica será mais complexa que isso...
(@dt_inicio..@dt_fim).cover? data
end
end
O que acha dessa abordagem?