我有一个存储文件的rails应用程序,用户可以在其中订阅三个计划:
如何在以下情况下自动升级/降级用户计划:
如何将Rails应用设置为“观察”用户帐户以进行这些更改?
有没有比在文件控制器创建和删除操作中粘贴逻辑更好的方法? 那么30天的试验逻辑呢? 谢谢!
注意:我可以正常处理订阅的实际切换,只需寻找监控和触发交换机的逻辑。
答案 0 :(得分:2)
在用户计划上设置association callbacks。假设您与Plan有一个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
答案 1 :(得分:0)
观察员(http://api.rubyonrails.org/classes/ActiveRecord/Observer.html)
或
ActiveRecord :: Callbacks(http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html)
用户登录后可以检查30天的试用期。其余的可以在用户更新时使用回调来完成。