关于在 RegistrationController 中添加 :current_password 属性是否正确的问题?
用户模型include ActiveModel::ForbiddenAttributesProtection
# app/model/user.rb
class User < ActiveRecord::Base
include ActiveModel::ForbiddenAttributesProtection
继承自 Devise 的密码控制器的密码控制器
# app/controllers/users/passwords_controller.rb
class Users::PasswordsController < Devise::PasswordsController
def resource_params
params.require(:user).permit(:email, :password, :password_confirmation)
end
private :resource_params
end
继承自 Devise 的注册控制器的注册控制器
# app/controllers/users/registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
def resource_params
params.require(:user).permit(:name, :email, :password, :password_confirmation, :current_password)
end
private :resource_params
end
路由设计使用指定用户的密码和注册控制器。
# config/routes.rb
devise_for :users, :controllers => {:registrations => "users/registrations", :passwords => "users/passwords"}
在RegistrationsController
我必须为用户添加属性:current_password
才能编辑他们的个人资料。
我问的原因是没有strong_parameters
我只会指定一个attr_accessible
for :email, :password, :password_confirmation, :remember_me
。
非常感谢任何见解。