gpt4 book ai didi

ruby-on-rails - ice_cube 和 recurring_select gems 和事件

转载 作者:行者123 更新时间:2023-12-04 05:52:52 26 4
gpt4 key购买 nike

我正在尝试利用 ice_cube 和 recurring_select gems 的 [awesome] 功能来处理重复发生的事件。我有一个 schedule我的数据库中的 (text) 列和事件模型中的以下内容:

  def schedule=(new_schedule)
write_attribute(:schedule, RecurringSelect.dirty_hash_to_rule(new_schedule).to_yaml)
end

def converted_schedule
Schedule.from_yaml(self.schedule, :start_date_override => self.start_date)
end

查看 psql 中的 schedule 列,它似乎正确存储了时间表。

这是我的表格:
.control-group
= f.label 'Date', :class => 'control-label'
.controls
= f.text_field :start_date, :class => 'datepicker'

.control-group
= f.label 'Recurring?', :class => 'control-label'
.controls
= f.select_recurring :schedule, :allow_blank => true

但是,当我尝试输出 converted_schedule 时,它只显示开始日期,不会显示任何其他日期。我有一些怀疑,我的修补没有成功……也许 YAML 没有为 converted_schedule 正确转换。方法?也许我需要一个结束日期(我在 recurring_select 上看不到此功能可用的位置)?

最佳答案

在咨询了 John Crepezzi(ice_cube gem 的作者——感谢 John!)后,我发现我存储的是重复规则而不是日程表本身。以下代码修复了该问题:

serialize :schedule, Hash

def schedule=(new_schedule)
write_attribute(:schedule, RecurringSelect.dirty_hash_to_rule(new_schedule).to_hash)
end

def converted_schedule
the_schedule = Schedule.new(self.start_date)
the_schedule.add_recurrence_rule(RecurringSelect.dirty_hash_to_rule(self.schedule))
the_schedule
end

注意:我还切换到将该列存储为散列而不是之前发布的 YAML。

关于ruby-on-rails - ice_cube 和 recurring_select gems 和事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17054670/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com