2015-12-17 4 views
0

Я использую recurring_select и ice_cube, чтобы пользователь определял повторяющиеся события. Я храню сериализованный график IceCube в атрибуте string-Attribute.рельсы 4.2.5 simple_form, ice_cube и recurring_select

Событие-модель включает в себя этот код:

include IceCube 
serialize :schedule, IceCube::Schedule 

Контроллер является дезинфицирующим входного:

params[:event][:schedule] = JSON.parse(params[:event][:schedule], quirks_mode: true) 

мнение выглядит так:

= simple_form_for [:admin, @event] do |f| 
    = f.input :schedule do 
    = f.select_recurring :schedule 

Это то, что params смотрят после дезинфекции для события, повторяющегося каждый день:

{"schedule"=>{"interval"=>1, "until"=>nil, "count"=>nil, "validations"=>nil, "rule_type"=>"IceCube::DailyRule"}} 

Но после назначения это новое событие с помощью Event.new, проверяя расписание выглядит следующим образом:

#<IceCube::Schedule:0x007f762831e958 @start_time=2015-12-17 12:02:29 +0100, @all_recurrence_rules=[], @all_exception_rules=[]> 

Повторяющиеся правила, кажется, нет, а форма поля только отображает дату и время.

ответ

0

У меня была та же проблема. recurring_select только редактирует правило. Следуя решить эту проблему для меня:

schedule = IceCube::Schedule.new (start_time = params['schedule_starttime']) 
schedule.add_recurrence_rule(RecurringSelect.dirty_hash_to_rule(params['schedule_rule'])) 

schedule_starttime и schedule_rule не хранятся в БД, расписание будет.