我是rails的新手,目前正在处理重复发生的事件。我有一个函数,用户可以选择重复发生的事件,如‘星期一’,‘星期二’,我要做的是,用布尔类型为每一天创建列,它将被设置为false,如果有任何输入,则更新为true,但我觉得这不是一个真正有效的方法。我查找了一些gem,比如ice-cube。然而,这对我来说似乎太多了,就像我所需要的就是存储重复的事件,如果用户根据日期添加和显示用户的话。例如,如果是星期一,则显示添加到Monday的用户。除了使用gem之外,还有什么建议或更好的方法来实现这一点吗?
发布于 2018-09-10 10:25:38
Ice Cube听起来有点夸张,因为你只是想在一周中的某一天运行代码。幸运的是,Ruby有一个“date”类,可以做你想做的事情。
在您的模型调用中,需要'date',获取当前日期并针对该当前日期运行星期几方法。
2.4.0 :008 > require 'date'
=> true
2.4.0 :009 > foo = Date.today
=> #<Date: 2018-09-09 ((2458371j,0s,0n),+0s,2299161j)>
2.4.0 :010 > foo.monday?
=> false
2.4.0 :011 > foo.sunday?
=> true
2.4.0 :012 > foo.friday?
=> false 如果使用.sunday?、.monday?等对你不起作用,你可以像这样获得星期几:
day_of_week = foo.wday # 0 = Sun, 1 = Mon etc.这样,你就可以有一个接受user_id和day_of_week参数的方法,你可以用它们来检查你的后端是否在一周的这一天为这个用户指示了一些操作。
https://stackoverflow.com/questions/52250150
复制相似问题