设计4的更新.十、
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:username])
devise_parameter_sanitizer.permit(:sign_in, keys: [:username])
devise_parameter_sanitizer.permit(:account_update, keys: [:username])
end
end
添加两个Ruby 后,Desive将正常工作.
更新:最新版本的Desive 3.x、 如devise#strong-parameters所述,认证密钥(通常是邮箱字段)和密码字段已经被允许.但是,如果报名表上有任何其他字段,您需要让Deavise知道需要允许的其他字段.最简单的方法是使用过滤器:
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) << :username
end
end
设计2.x、 如果您使用的安全功能要求在用户模型中明确列出受污染的参数:
include ActiveModel::ForbiddenAttributesProtection
在https://gist.github.com/3350730处可以找到所需的更改,这会覆盖一些控制器.