我需要将timeout_in设置为动态值,如下所示,但这里self不是User模型的实例。谁能知道如何使用这个条件。
设计:database_authenticatable,:registerable, :可恢复的,:可记住的,:可跟踪的,:可验证的, :token_authenticatable,:confirmmable,:lockable,:timeoutable,:omniauthable,:timeout_in => (self.email.nil??111.minutes:112.minutes)
答案 0 :(得分:2)
此功能在Devise master上,应尽快在新的Devise版本上发布。您可以将Gemfile指向Devise git repository并立即开始使用它。
https://github.com/plataformatec/devise/wiki/How-To:-Add-timeout_in-value-dynamically https://github.com/plataformatec/devise/pull/1462
答案 1 :(得分:0)
我不知道你是否可以这样做,因为你在班级范围内。
要执行您想要的操作,请定义一个名为timeout_in的方法来实现此逻辑。因为它有this method Devise尝试从实例方法加载timeout_in,然后尝试从类方法中获取它。
编辑:删除猴子补丁溶液添加了更好的一个。EDIT2:改善答案。