如何为我的rails应用程序设置最大登录数

时间:2010-07-08 07:32:28

标签: ruby-on-rails

对于每个组织,使用我的应用程序需要设置“最大许可证数量”,例如,100。然后,该组织中的一个用户登录到应用程序“使用计数”变为1.如果登录其他用户, “使用计数”增量变为2.这样,如果尝试访问许多用户的应用程序,并且'used count'变为100,'used count'将变为'最大许可计数'。然后,如果有的话一个尝试访问该应用程序应显示一条消息“超出许可证数量”,并且不允许用户登录。

2 个答案:

答案 0 :(得分:1)

你可以用以下方式完成

1]在数据库中创建一个字段max_count

2]当有人注册时(我怀疑你想要登录)增加计数

3]当有人尝试使用模型中的follwing方法进行注册验证时

   def validate
     if self.nil && self.max_count >= 100
       self.errors.add :base, 'License count exceeded.'
     end
   end

答案 1 :(得分:1)

您需要更好地定义许可证计数要求才能完全回答问题,但这里有一些想法需要考虑:

  • 如果许可证计数适用于注册用户,只需检查User.find(:all).length是否小于 n
  • 如果许可证计数适用于已登录但尚未注销的用户,请向用户添加布尔“logged_in”字段并执行上述操作,但查找所有logged_in用户。在登录时设置字段,在注销时清除它。
  • 如果许可证计数适用于活动用户,请计算会话表中的活动条目数。