如何使用Devise锁定用户?

我想在我的应用程序中为帐户持有者用户添加订阅类型function,以便在固定的时间间隔后他们将无法访问其帐户? 注意:我不想从数据库中删除他们的帐户。 我已经在我的应用程序中安装了devise-2.1.2 。 有没有人知道怎么办? 我是Ruby on rails新手,所以如果你能解释一下这对我很有帮助。

Devise有一个内置解决方案,其中包含:lockable选项,可在Devise Lockable Documentation中查看

您必须将lock_strategy设置为:failed_attempts.

步骤1设置config / initializers / devise.rb使用:

 # Defines which strategy will be used to lock an account. config.lock_strategy = :failed_attempts # Defines which key will be used when locking and unlocking an account config.unlock_keys = [ :time ] # Defines which strategy will be used to unlock an account. # :time = Re-enables login after a certain amount of time (see :unlock_in below) config.unlock_strategy = :time # Number of authentication tries before locking an account if lock_strategy # is failed attempts. config.maximum_attempts = 3 # Time interval to unlock the account if :time is enabled as unlock_strategy. config.unlock_in = 2.hours 

第2步你应该将可锁定的模型添加到模型中:

 class Example < ActiveRecord::Base devise :database_authenticatable, :registerable, :recoverable, :rememberable, :trackable, :validatable, :lockable 

步骤3生成迁移以使设计工作

 class AddLockableToExamples < ActiveRecord::Migration def change add_column :examples, :failed_attempts, :integer, default: 0 add_column :examples, :unlock_token, :string add_column :examples, :locked_at, :datetime end end 

问候!!