【问题标题】:Rails Devise gem: Limit the number of times I can resend confirmation mailRails Devise gem:限制我可以重新发送确认邮件的次数
【发布时间】:2014-09-23 16:50:17
【问题描述】:

我有一个可以创建新用户的用户管理员,新创建的用户需要向他确认电子邮件才能激活他的帐户。

如何限制针对特定用户“重新发送确认邮件”的次数。

假设我创建了一个新用户并且他没有通过他的邮件确认,所以我给他发送另一封确认邮件以防他丢失了第一个,同样我可以根据需要多次重新发送邮件。但我希望这个数字限制为 5。所以对于特定用户,

user.send_confirmation_instructions只能使用5次。

有没有设计内置的方法来做到这一点。

【问题讨论】:

  • 不,此方案没有任何现有配置。一个原因可能是您不想有额外的负担来清除在一定次数的试验后被阻止的所有用户的限制。
  • 嗨@Surya 感谢您的回复。您能否提出一种我可以实施的方法,您认为应该是理想的并使用设计中预先存在的东西?或解决方法。

标签: ruby-on-rails devise devise-confirmable


【解决方案1】:

我认为设计中没有任何内置方法可以处理此问题。但我能想到的另一种简单方法是

  1. user 模型中添加mail_counter 属性。
  2. 每当调用user.send_confirmation_instructions 时,将该特定用户的该mail_counter 增加“1”。
  3. 添加user.mail_counter < 6 的if 条件以在调用user.send_confirmation_instructions 之前执行。

【讨论】:

  • 嗨@TarunJadhwani,这是一种显而易见的方式,我正在寻找的东西并不是那么明显。我觉得这就是 ruby​​ 和 rails 学习曲线的本质。总有更好的方法。:)。感谢您为回答它所做的努力。谢谢
猜你喜欢
  • 1970-01-01
  • 2016-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-25
  • 2015-08-18
  • 2011-08-20
  • 1970-01-01
相关资源
最近更新 更多