我已经坚持了 24 小时以上,试图遵循此处发布的其他解决方案,但我无法让它发挥作用。我是 Rails 新手,需要帮助!
我想让我的 /users/edit 页面正常工作,这样我就可以简单地更改用户密码。最初,我想在没有 current_password 的情况下执行此操作,但我不介意将其留在其中,只要我可以更改和更新密码即可。
这是我所做的:
我按照Devise Wiki中的示例将其插入到我指定从 Devise::RegistrationsController 继承的用户控制器中
class UsersController < Devise::RegistrationsController
...
end
我改变了路线:
devise_for :users, :controllers => { :registrations => 'users' } do
match '/users' => 'users#index'
end
这是我的模型:
class User < ActiveRecord::Base
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessor :password, :password_confirmation, :current_password
attr_accessible :email, :password, :password_confirmation, :current_password, :remember_me, :full_name, :coach, :bio
validates :full_name, presence: true
end
我假设我创建的 UsersController 将覆盖 Registrations 控制器,并且我将能够更改/更新密码。它的工作原理是重定向到 root_path 发生(这仅意味着在没有当前密码的情况下更新后发生)但没有保存新密码(我检查了日志并且没有 SQL 显示它已保存)...
有任何想法吗?