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

时间:2019-02-13 15:06:54

标签: ruby-on-rails devise-invitable

最近我安装了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 :(得分:1)

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

默认情况下,invitable为用户添加一个<body> <a href="" id="dnperm">block</a> 列,该列记录了他们剩余的邀请数。我想,如果您有一个计划的任务,每天将其重置为您希望每天允许的邀请数量,那么它将“正常工作”。

不太容易破解的方法是向用户添加自己的invitation_limit,并在User上覆盖的has_invitations_left?方法中进行检查,并在decrement_invitation_limit!中进行递减。

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

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