我有一个使用 Devise 进行身份验证的应用程序运行良好。我添加了 CanCan,但我现在遇到了 Devise 的问题。给定标准的“encrypted_password”和“password_confirmation”属性,如果它们未指定为attr_accessible,那么当控制器尝试执行以下操作时:
@user = User.new(params[:user])
我得到标准的 MassAssignment 错误。但是,如果我将它们添加到 attr_accessible 列表中,我可以创建用户,但由于 attr_accessible 不允许 Devise 加密密码,因此密码验证将失败。我怀疑问题出在我的路线上,因为我两者都有:
devise_for :users, :path_prefix => 'secure'
resources :users
资源 :users 在那里,以便管理员使用标准 CRUD 类型的操作来管理 CanCan。
不确定是否需要更多细节,但这听起来像是我正在努力解决的核心问题。
谢谢