Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 通过rake任务对每天、每周和每月重复发生的事件进行编程_Ruby On Rails_Ruby_Heroku_Scheduled Tasks_Rake Task - Fatal编程技术网

Ruby on rails 通过rake任务对每天、每周和每月重复发生的事件进行编程

Ruby on rails 通过rake任务对每天、每周和每月重复发生的事件进行编程,ruby-on-rails,ruby,heroku,scheduled-tasks,rake-task,Ruby On Rails,Ruby,Heroku,Scheduled Tasks,Rake Task,我需要一些帮助,了解如何在我的rails应用程序中编程重复发生的事件(每日、每周和每月)。 我计划使用一个rake任务,也可以在生产中执行调度任务 我已经研究过类似的宝石以及其他扩展了冰立方宝石的宝石,但对于我想要实现的目标来说,所有这些似乎都过于复杂了 我只对显示仅在那天发生的事件的每日提要感兴趣 但我所做的是让用户能够创建每日、每周和每月的事件,而不必手动输入或更新这些事件 这就是我目前正在努力的地方 我的事件模型具有以下相关字段 t.datetime "event_start_time"

我需要一些帮助,了解如何在我的rails应用程序中编程重复发生的事件(每日、每周和每月)。 我计划使用一个rake任务,也可以在生产中执行调度任务

我已经研究过类似的宝石以及其他扩展了冰立方宝石的宝石,但对于我想要实现的目标来说,所有这些似乎都过于复杂了

我只对显示仅在那天发生的事件的每日提要感兴趣

但我所做的是让用户能够创建每日、每周和每月的事件,而不必手动输入或更新这些事件

这就是我目前正在努力的地方

我的事件模型具有以下相关字段

t.datetime "event_start_time"
t.datetime "event_end_time"
t.string   "event_frequency"
t.datetime "event_signup_time"
在创建事件的视图中,我有以下UI

在我的rake任务中的一个非常高的级别,称为它
event\u scheduler.rake
在lib/tasks下,我想查询我的事件模型,获取所有事件,确定事件是每天、每周还是每月发生,并相应地更新以下字段:

event_start_time
event_end_time
event_signup_time
我也可以有一个开关声明,以检查每日,每周和每月


这在我看来仍然很复杂。如果有人能提出一段代码,一个替代或不同的方法,我会非常感激

我将通过每天运行一次单个rake任务(通过调度器)来实现这一点,并让这个rake任务依次调用事件模型中的一个类方法,该类方法查看所有相关数据并决定需要创建哪些(如果有的话)事件。让实际调度尽可能简单,让您的类完成所有逻辑。我猜在您的模式中有一个类是“上面的”事件,这就是人们实际编辑的内容?例如ScheduledEvent,它可以设置为每月重复,然后它有一系列与之关联的事件,每个事件都有一个特定的时间等等。所有编辑都发生在我的事件模型中。目前我没有一门课是“高于”事件的。你能再详细说明一下日程安排的工作原理吗。我猜这就是我可以存储
event\u frequency
字段的地方,该字段存储每天、每周和每月发生的事件的id?这有点接近你的建议吗?是的,完全正确。想象一下,当你把一个重复的事件放在谷歌日历或其他东西上。有“重复事件”的概念,然后是从中生成的实际事件,作为子事件。我将通过每天运行一次单个rake任务来实现这一点(通过调度程序),并让此rake任务依次调用事件模型中的一个类方法,该类方法查看所有相关数据,并决定哪一个(如果有的话),需要创建事件。让实际调度尽可能简单,让您的类完成所有逻辑。我猜在您的模式中有一个类是“上面的”事件,这就是人们实际编辑的内容?例如ScheduledEvent,它可以设置为每月重复,然后它有一系列与之关联的事件,每个事件都有一个特定的时间等等。所有编辑都发生在我的事件模型中。目前我没有一门课是“高于”事件的。你能再详细说明一下日程安排的工作原理吗。我猜这就是我可以存储
event\u frequency
字段的地方,该字段存储每天、每周和每月发生的事件的id?这有点接近你的建议吗?是的,完全正确。想象一下,当你把一个重复的事件放在谷歌日历或其他东西上。这里有“重复事件”的概念,然后是由此产生的实际事件,作为子事件。