我已经将Devise添加到我的Rails 4应用程序中,并成功将用户名等添加到了我的用户模型中。此外,我能够使用lazy way™存储这些字段,即
class ApplicationController < ActionController::Base
before_filter :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:email, :password, :password_confirmation, :firstname, :middlename, :lastname) }
end
end
但是,我尝试了
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:email, :password, :password_confirmation, :firstname, :middlename, :lastname) }
devise_parameter_sanitizer.for(:edit) { |u| u.permit(:email, :password, :password_confirmation, :firstname, :middlename, :lastname) }
end
但这不能按预期方式工作(edit操作调用时未存储用户名)。为了使它正常工作,我还需要做其他事情吗?谢谢!
再一次,这是阅读手册的问题...
神奇的词是:account_update
,因此工作版本成为
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(:email, :password, :password_confirmation, :firstname, :middlename, :lastname, :nickname) }
devise_parameter_sanitizer.for(:account_update) { |u| u.permit(:email, :password, :password_confirmation, :current_password, :firstname, :middlename, :lastname, :nickname) }
end
请注意,如果您要使用非标准参数登录,那么您要查找的单词就是:sign_in
(预期的)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句