2008-10-29 12 views
18

¿Cuáles son las mejores prácticas actuales en el mundo de Rails para mostrar una vista de mes calendario con elementos de evento vinculados a los días del mes (como en Mochila o Google Calendar, por ejemplo)?Creación de un calendario tipo mochila en Rails

No necesito nada como cosas elegantes como el soporte para arrastrar y soltar. Solo estoy buscando código para permitirme obtener una lista de eventos en mi controlador y de alguna manera exponerlos como entradas en una vista de calendario mensual (tal vez con nombres de clase en los elementos HTML para permitirme mostrar diferentes tipos de eventos de manera diferente, o tal vez para mostrar eventos de múltiples calendarios).

Existe la Dynamic Calendar Helper que se creó hace unos años, que bien podría funcionar muy bien para mí, pero me pregunto si debería buscar otros complementos también.

Otras posibilidades que he encontrado hasta el momento:

Por lo tanto, ¿me puede apuntar en la dirección correcta en cuanto a lo que la gente está utilizando para generar calendarios mensuales con datos ¿estos días?

Respuesta

3

Terminé yendo con Dynamic Calendar Helper por el momento.

1

Eche un vistazo a la vista del calendario en Redmine.

3

No sé si esto se adapta a las limitaciones de su problema, pero ¿ha mirado el Google Calendar API? No sé si puede contar con que sus usuarios tengan sus propias cuentas, o si puede crear programáticamente todos los calendarios que necesita en una cuenta y simplemente extraer los datos por calendario a través de la API, pero podría valer la pena verlos .

8

Consulte http://github.com/p8/table_builder/tree/master. Funciona más bien como form_for. Tampoco requiere objetos de evento, solo objetos con un método que devuelve una fecha.

<% calendar_for(@tasks, :year => @year, :month => @month) do |t| %> 
    <%= t.head('mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun') %> 
    <% t.day(:day_method => YOUR_DATE_METHOD) do |day, tasks| %> 
     <%= day.day %><br /> 
     <% tasks.each do |task| %> 
      <%= h(task.name) %><br /> 
     <% end %> 
     <% end %> 
    <% end %> 
    <% end %> 
Cuestiones relacionadas