情况:带有演示期的 rails 3.2 应用程序,之后用户必须开始为服务付费。
问题:如果用户没有添加支付方式,或者没有选择支付计划,那么限制用户访问网络应用程序“付费”部分的推荐方法是什么?
我需要对用户进行如下排序的东西:
if user.admin? || user.in_demo || user.has_all_payment_data
# carry on
elsif user.should_add_payment_method
# send them to add payment method page
elsif user.should_choose_plan
# send them to add plan
else
# redirect to home page or whatever
end
我已经开始before_filter
在应用程序控制器上检查每个请求的用户付款状态并相应地重定向它们(在主页/配置文件编辑等地方跳过这个),但我认为必须有一个更好的方法,因为它很快变得过于复杂,并且在应用程序控制器中拥有所有这些复杂性感觉是错误的。我一直在寻找像 cancan 这样的用户角色库,但我找不到任何合适的东西。