Обрабатывать повторяющиеся события в рельсах - PullRequest
0 голосов
/ 10 сентября 2018

Я очень новичок в рельсах и в настоящее время имею дело с повторяющимися событиями. У меня есть функция, с помощью которой пользователь может выбрать повторяющиеся события, такие как «Понедельник», «Вторник», и я собирался создать столбцы для каждого дня с логическим типом, и он будет установлен как false и обновить до true, если есть какие-либо входные данные, но я чувствую, что это не очень эффективный способ. Я посмотрел некоторые gem, такие как кубик льда. Однако для меня это кажется слишком большим, как и все, что мне нужно, это хранить повторяющиеся события, если пользователь добавляет и отображает пользователя в зависимости от дня. Например, если это понедельник, покажите пользователей, которые добавлены в Monday. Есть ли какие-либо рекомендации или лучший способ добиться этого, кроме использования драгоценных камней?

1 Ответ

0 голосов
/ 10 сентября 2018

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, которые вы можете использовать, чтобы проверить, указывает ли ваш бэкэнд какое-либо действие для этого пользователя в этот день недели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...