Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

gem ice_cube for reccurence events

I have simple Event model (title, date, user) And I created Events Calendar by months (gem 'watu_table_builder'). I need the feature to create repeating events. I figured out that I may use gem ice_cube for it. But it is not clear for me.

I added to model:

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) How I may combine repeat rules with Events array?

2) As I understand, I may save to db information about repeats in yaml yaml = schedule.to_yaml

But it is not clear for me how it is good way to create drop-down for repeats (none, each day, each month, each year) and link it with shedule rules. Where and how I should realize it (convert user choise to right shedule)

like image 234
Gabi Avatar asked Nov 13 '22 08:11

Gabi


1 Answers

You won't be able to query the database for the Event's serialized (yaml) schedule to filter occurrences by month, if that's what you're trying to do. If you need to do that, then you'll have to store the schedule.occurrences as rows in a separate table join: that's what I do in our app.

I might have more details to add to this answer later, meanwhile have a look at my schedule_attributes gem if it helps you build the selectors for building schedules from user input (I still need to update docs and release it...)

like image 183
Andrew Vit Avatar answered Nov 15 '22 03:11

Andrew Vit