rails 4.2.5 simple_form,ice_cube和recurring_select

时间:2015-12-17 11:05:44

标签: ruby-on-rails-4 simple-form ice-cube

我使用recurring_select和ice_cube让用户定义重复发生的事件。我将序列化的IceCube-Schedule存储在字符串属性中。

event-Model包含以下代码:

include IceCube
serialize :schedule, IceCube::Schedule

Controller正在清理输入:

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=[]>

重复出现的规则似乎已经消失,而表单字段只显示日​​期和时间。

1 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。 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不存储在db中,schedule will。