2010-05-04 28 views
8

Estoy considerando desarrollar una aplicación con Ruby on Rails que es una especie de planificador. Me gustaría dar al usuario la posibilidad de ver una lista de días, hacer clic en un día en particular y luego agregar cosas como: Comidas, Gastos, Eventos, Todos y Ejercicios. Realmente estoy haciendo esto por mí y mi familia en crecimiento.Creación de una aplicación Calendario/Planificador - Ruby on Rails

Tengo curiosidad sobre la mejor manera de implementar esto. Ciertamente puedo ver que Meals, Expenses, etc. necesitan pertenecer a: usuario, pero tengo curiosidad sobre cómo implementar el belongs_to: day o algo así. El uso de created_at o updated_at no necesariamente me permite proporcionar vistas para futuras fechas.

Veo cómo si creara una tabla de Días y luego agregué días a través de un campo de fecha y hora para que esto funcione, pero parece un poco extraño pedirle a la gente que cree los días reales.

O tal vez en lugar de eso podría simplemente crear enlaces a variables que busquen @today, @tomorrow, pero eso sería complicado.

He buscado gemas/complementos pero no puedo encontrar uno que funcione. Idealmente, una persona podría.

¿Alguien tiene alguna idea sobre cómo implementar algo como esto?

Respuesta

6

Existen varios calendarios de rieles existentes, como http://github.com/elevation/event_calendar o http://github.com/topfunky/calendar%5Fhelper.

Sin embargo, para responder a su pregunta específica sobre las fechas: no creo que sea necesario tener Day como modelo; simplemente déle a cada evento una fecha y hora de inicio, y una fecha y hora de finalización. Recuerda que Ruby facilita la búsqueda en función de los rangos, por lo que "dame todos los eventos la próxima semana" es muy sencillo si cada evento tiene fechas y horas asociadas.

+0

https://github.com/austinthecoder/cal es también una buena joya para ayudar a renderizar calendarios. – Austin

1

Agregaría un modelo llamado "Eventos" y tendría las propiedades del modelo para representar la fecha/hora de inicio, la fecha/hora de finalización. No creo que necesite un modelo de días, puede generar su vista de calendario a partir de la clase Date incorporada en ruby.

4

Lo intentaré ...

Dos tablas; usuarios y eventos. Un usuario tiene muchos eventos y un evento pertenece a un usuario. Comida, Gastos, etc. son varios tipos de eventos. Dentro de los eventos, puede tener campos para el inicio y el final de los eventos. Si es necesario (supongamos que un evento dura varios días), puede eliminar el día/hora en que ocurren los eventos en su propia tabla.

De esta manera, al mostrar el calendario para un usuario, puede encontrar todos los eventos para esa fecha. Si no se encuentra ninguno, entonces no muestre nada.

¿Qué opinas?

1

He hecho el mismo tipo de proyecto para la gestión de eventos en el instituto de formación. Allí utilicé event_calender plug in con rieles. (enter link description here)
Aquí solo tenemos que crear el modelo de eventos. Entonces podemos trabajar fácilmente con eso.