Rails:达到限制后如何处理自动升级用户帐户



我有一个存储文件的rails应用程序,用户可以在其中订阅三个计划:

  • 计划1:免费试用最多50个文件30天
  • 计划 2:最多 250 个文件
  • 计划 3:最多 500 个文件

在以下情况下,我将如何自动升级/降级用户计划:

  • 30 天试用期结束或用户上传超过 50 个文件
  • 超出文件限制并进入另一个括号
  • 或者文件被删除,用户下降一个级别

如何将 Rails 应用程序设置为"监视"用户帐户以进行这些更改?

有没有比在文件控制器中创建和删除操作中粘贴逻辑更好的方法?那么30天的试用逻辑呢?谢谢!

注意:我可以很好地处理订阅的实际切换,只需寻找逻辑来监视和触发切换。

在用户的计划上设置关联回调。假设您与计划的关系has_many,在User.rb中,您可以拥有类似

has_many :plans, :through => :user_plans,
  :after_add => :check_plan_eligibility,
  :after_remove => :check_plan_eligibility

然后

protected
def check_plan_eligibility(obj)
  # Do checks here based on your rules, and update the user's plan ID accordingly
end

观察者 (http://api.rubyonrails.org/classes/ActiveRecord/Observer.html)

活动记录::回调 (http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html)

用户登录时可以检查30天试用期。其余的可以在用户更新时使用回调来完成。

相关内容

  • 没有找到相关文章

最新更新