Rails 5: 设置每日邀请限制devise_invitable

Rails 5: set daily invitation limit with devise_invitable

最近我安装了 devise_invitable,现在我想每天添加一个 invitation_limit

我知道我可以在我的 config/initializers/devise.rb 文件中对 devise_invitable 进行一些配置。

目前我的 devise.rb 文件如下所示:

config.invitation_limit = 5

我在想一个涨停板的方法,大概是这样的:

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

也许有点老套,但您可以使用现有的机制来限制邀请并每天重置它们。

默认情况下,invitable 会向用户添加一个 invitation_limit 列,用于记录他们剩余的邀请数。如果您有一个计划任务来每天将其重置为您希望每天允许的邀请数量,那么我认为它会 'just work'。

比较简单的方法是将您自己的 invitation_daily_limit 添加到用户,并在覆盖的 has_invitations_left? method on User and decrement it in decrement_invitation_limit! 中也进行检查。

您可以在 devise_invitable 中看到这些方法:https://github.com/scambra/devise_invitable/blob/master/lib/devise_invitable/inviter.rb

尽管如此,您仍然需要做一些事情来重置每日限制,这可能是计划任务最简单的方法。