我正在开发一个现有的 Rails 应用程序(30 多个模型,30 多个控制器)并尝试实现 Devise 的可确认(现在用户在注册期间不会被提示创建密码)。
我的问题是两个(看似)小动作导致 300 个规格开始失败......我希望有经验的人提供任何建议,以帮助我避免在任何兔子洞中走得太远。
两个动作:
(1)在user.rb
我添加:confirmable
到设计配置中:
devise :database_authenticatable, :recoverable, :rememberable, :confirmable, ...
(2)在devise.rb
我取消注释掉allow_unconfirmed_access
配置:
config.allow_unconfirmed_access_for = 2.days
这两个动作导致我所有规格的近 1/4 开始失败。在我开始深入研究每个规范并进行更改之前,有人可以让我知道我缺少什么或指出我正确的方向吗?
更新我已将原因缩小到我认为是管理员权限问题。针对普通用户的规范正在通过,但是任何需要管理员登录的测试现在都失败了(例如,预期响应为 200 的规范返回 302 或 401...)
在我的工厂中,对于普通用户,我包括confirmed_at
eq Time.now
。这就是我构建管理员的方式:
factory :admin_user, :parent => :user do
email ADMIN_USER_EMAIL
end
其中 ADMIN_USER_EMAIL 是一个引用实际管理员电子邮件地址的 ENV 变量。由于它继承自我:parent => :user
不确定还有什么可以尝试确认管理员?