Ruby on rails rails应用程序和会员访问选项的最佳方法
我想看看这里的社区会建议什么样的最佳方法。我现在有了我的应用程序,其中用户有plan_id,因此plan_id=“1”将是试用版或免费版,plan_id=“2”将是订阅计划。现在我的控制器检查两件事,1)计划id是否为1或2。。。2.)如果在自由计划中,检查他们在DB中保存的帖子数量;3.)如果在自由计划中,检查他们拥有的类别 我想将我的用户限制在帖子和类别的数量上,如果他们达到这个限制,他们就必须订阅无限计划=计划2 现在我也在看Cancan或Easy_的角色,但就我而言,我不确定这是否可行 我应该继续使用有效的解决方案,还是改变它并实施Cancan或Easy_角色?我在寻求建议Ruby on rails rails应用程序和会员访问选项的最佳方法,ruby-on-rails,ruby-on-rails-3,ruby-on-rails-3.2,Ruby On Rails,Ruby On Rails 3,Ruby On Rails 3.2,我想看看这里的社区会建议什么样的最佳方法。我现在有了我的应用程序,其中用户有plan_id,因此plan_id=“1”将是试用版或免费版,plan_id=“2”将是订阅计划。现在我的控制器检查两件事,1)计划id是否为1或2。。。2.)如果在自由计划中,检查他们在DB中保存的帖子数量;3.)如果在自由计划中,检查他们拥有的类别 我想将我的用户限制在帖子和类别的数量上,如果他们达到这个限制,他们就必须订阅无限计划=计划2 现在我也在看Cancan或Easy_的角色,但就我而言,我不确定这是否可行
谢谢,如果您愿意,您应该可以使用CanCan。设置它的方法是以以下方式定义这些能力(未经测试的代码,但您知道): 这样做的缺点是,当用户未经授权时,会引发一个通用异常,而您不知道引发该异常的原因。因此,在处理时,您必须再次检查:
rescue_from CanCan::AccessDenied do |exception|
if user.plan_id == 1 and user.posts.count > X
render 'too_many_posts'
elsif user.plan_id == 1 and user.categories.count > Y
render 'too_many_categories'
else
...
end
end
或在签入控制器时在消息中传递:
authorize! :create, Post, :message => "Unable to create so many posts"
谢谢你,这给了我一个更好的想法来使用CanCan。
authorize! :create, Post, :message => "Unable to create so many posts"