Rails 5: установите дневной лимит приглашений с помощью devise_invitable - PullRequest
0 голосов
/ 13 февраля 2019

Недавно я установил devise_invitable, и теперь я хотел бы добавить ежедневно invitation_limit.

Я знаю, что я могу сделать некоторые настройки для devise_invitable в моем файле config/initializers/devise.rb.

В настоящее время мой файл devise.rb выглядит следующим образом:

config.invitation_limit = 5

Я думаю о способе установить дневной лимит, возможно, что-то вроде этого:

  config.invitation_limit = Time.zone.now.beginning_of_day..Time.zone.now.end_of_day.5

1 Ответ

0 голосов
/ 13 февраля 2019

Возможно, немного странно, но вы могли бы использовать существующие механизмы для ограничения приглашений и просто сбрасывать их каждый день.

По умолчанию invitable добавляет столбец invitation_limit пользователям, который записывает количество оставленных им приглашений.Если бы у вас было запланированное задание, чтобы каждый день сбрасывать столько приглашений, сколько вы хотите разрешить в день, я думаю, что это «просто работает».

Менее хакерский способ - добавить свой собственный invitation_daily_limit для пользователей и проверить его в переопределенном методе has_invitations_left? для пользователя и уменьшить его в decrement_invitation_limit! тоже.

Вы можете увидеть эти методы в devise_invitable: https://github.com/scambra/devise_invitable/blob/master/lib/devise_invitable/inviter.rb.

Вы все равно должны были бы сделать что-то, чтобы сбросить дневной лимит, и это, вероятно, было бы проще всегозапланированное задание.

...