2013-04-03 10 views
5

Ho un semplice modello di eventi (titolo, data, utente) E ho creato il calendario degli eventi per mesi (gem 'watu_table_builder'). Ho bisogno della funzione per creare eventi ricorrenti. Ho capito che potrei usare la gemma ice_cube per questo. Ma non è chiaro per me.gem ice_cube per eventi di reccurence

ho aggiunto al modello:

class Event < ActiveRecord::Base 
    #require 'ice_cube' 
    include IceCube 

    belongs_to :user 

    validates :title, :presence => true, 
        :length => { :minimum => 5 } 
    validates :shedule, :presence => true 

    def self.events_and_repeats(date) 
    @events = Event.where(shedule:date.beginning_of_month..date.end_of_month) 

# Here I need to figure out what is events repeats at this month (from date param) 
# how I may combine it with Events array 

    @events_repeats = @events # + repeats 

    return @events_repeats 

    end 

1) Come posso combinare regole di ripetizione con eventi array?

2) A quanto ho capito, posso salva nel db informazioni su ripete in YAML YAML = schedule.to_yaml

ma non è chiaro per me come è buon modo per creare a discesa per le ripetizioni (nessuno, ogni giorno, ogni mese, ogni anno) e collegarlo con le regole shedule. Dove e come dovrei realizzarlo (convertire la scelta dell'utente in shedule destra)

+0

Che cos'è "gem calendar_table" e cosa fa? Non riesco a trovarlo –

+0

Siamo spiacenti, è 'watu_table_builder'. – Gabi

+0

Si è appena creato il calendario alla pagina. Il mio codice in index.html.erb è <% = calendar_for (@events,: year => @ date.year,: month => @ date.month) do | calendar | %> .................... <% end %> – Gabi

risposta

1

Non è possibile interrogare il database per la pianificazione serializzata (yaml) dell'evento per filtrare gli eventi per mese, se è quello che stai provando fare. Se è necessario, è necessario archiviare lo schedule.occurrences come righe in un join tabella separato: questo è ciò che faccio nella nostra app.

Potrei avere più dettagli da aggiungere a questa risposta più tardi, nel frattempo dai un'occhiata al mio schedule_attributes gem se ti aiuta a costruire i selettori per costruire le pianificazioni da input dell'utente (devo ancora aggiornare i documenti e rilasciarlo ...)

+1

Come è possibile memorizzare una regola di ricorrenza nel database? potrei salvare una pianificazione nel db ripete = schedule.to_hash o ripetizioni = schedule.to_yaml quindi utilizzare da db schedule = repeats.from_hash ma ho bisogno di sapere che cosa è una regola. Ad esempio, se viene ripetuto settimanalmente, come posso memorizzare una regola in db o come posso conoscere la regola dal programma? Sono alcuni metodi come .to_hash e .from_hash per le regole? – Gabi

+0

Grazie per aver messo insieme questa libreria. In attesa dell'aggiornamento dei documenti e della versione ufficiale. Proverò a implementare qualcosa di simile a @gabi – kevinwmerritt