2013-04-03 11 views
5

Mam prosty model zdarzeń (tytuł, data, użytkownik) I stworzyłem kalendarz wydarzeń według miesięcy (gem 'watu_table_builder'). Potrzebuję tej funkcji do tworzenia powtarzających się wydarzeń. Doszedłem do wniosku, że mogę użyć do tego gem ice_cube. Ale nie jest dla mnie jasne.klej ice_cube dla zdarzeń reccurence

dodałem do modelu

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) Jak mogę połączyć zasady powtarzać z tablicy wydarzenia?

2) Jak rozumiem, mogę zapisać do db informacje o powtórzeń w YAML YAML = schedule.to_yaml

Ale to nie jest dla mnie jasne, jak to jest dobry sposób, aby stworzyć rozwijaną dla powtórzeń (brak, każdego dnia, każdego miesiąca, każdego roku) i łączyć go z regułami shedule. Gdzie i jak powinienem go zrealizować (przekonwertować wybór użytkownika na właściwy schemat)

+0

Co to jest "gem calendar_table" i co robi? Nie mogę tego znaleźć. –

+0

Niestety, jest to "watu_table_builder". – Gabi

+0

To jest właśnie stworzony kalendarz na stronie. Mój kod w index.html.erb to <% = calendar_for (@events:: year => @ date.year,: month => @ date.month) do | calendar | %> .................... <% end %> – Gabi

Odpowiedz

1

Nie będziesz w stanie wysłać zapytania do bazy danych z serializowanym (yaml) planem wydarzenia, aby filtrować wystąpienia według miesiąca, jeśli to właśnie próbujesz do zrobienia. Jeśli musisz to zrobić, musisz przechowywać schedule.occurrences jako wiersze w osobnym złączu tabeli: to właśnie robię w naszej aplikacji.

Mogę mieć więcej informacji, które można dodać do tej odpowiedzi później, tymczasem zajrzyj do mojej skarbu schedule_attributes, jeśli pomoże ci to zbudować selektory do budowania harmonogramów z danych wprowadzanych przez użytkownika (wciąż muszę zaktualizować dokumenty i wypuścić je ...)

+1

Jak mogę przechowywać regułę powtarzania w bazie danych? mogę zapisać harmonogram w db powtórzenia = schedule.to_hash lub repeats = schedule.to_yaml następnie używać go z harmonogramem db = repeats.from_hash Ale muszę wiedzieć, co jest regułą. Na przykład, jeśli jest ono powtarzane co tydzień, w jaki sposób mogę zapisać regułę w db lub jak poznać regułę z harmonogramu? Czy jest kilka metod takich jak .to_hash i .from_hash dla reguł? – Gabi

+0

Dzięki za złożenie tej biblioteki. Czekamy na aktualizację dokumentacji i oficjalną wersję. Będę usiłował zaimplementować coś podobnego do @gabi – kevinwmerritt

Powiązane problemy