为rails app实施禁止系统的最佳方式

时间:2013-05-08 16:19:20

标签: ruby-on-rails authentication devise

我在我的rails应用程序中使用带有cancan的Devise进行身份验证,我希望能够阻止某些帐户并阻止用户使用阻止的电子邮件和手机进行注册。我只是不确定这是最好的方法。

我有角色:管理员,主持人和用户 admin:必须具备禁止/阻止版主和用户的能力 主持人:必须具备禁止/阻止用户的能力

我的第一个想法是添加新的“阻止”角色,但我认为有更好的方法。

1 个答案:

答案 0 :(得分:2)

我会采用最简单的方法:在User表上获取一个布尔“阻塞”。然后定义类似的东西:

class User 
  def block(other_user)
    if(can_block? other_user)
      other_user.block = true
      other_user.save!
    end
  end

  def can_block?(other_user)
    # Your logic using the roles.
  end
end

直截了当,但我喜欢这样。