使用 Devise gem 生成用户模型。
尝试添加“用户名”属性。
按照官方文档,现在我的 ApplicationController 看起来像这样:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :configure_permitted_parameters, if: :devise_controller?
before_action :authenticate_user!
protected
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:account_update, keys: [:username])
devise_parameter_sanitizer.permit(:sign_in, keys: [:username])
devise_parameter_sanitizer.permit(:sign_up, keys: [:username])
end
end
当我尝试转到帐户更新页面时,出现以下错误:
NoMethodError in Devise::RegistrationsController#edit
private method `permit' called for #Devise::ParameterSanitizer:0x007f13396cf180>
这里有什么问题?
最佳答案
根据 this answer ,您还可以执行以下操作:
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_in) << :username
devise_parameter_sanitizer.for(:sign_up) << :username
devise_parameter_sanitizer.for(:account_update) << :username
end
关于ruby-on-rails - 无法在 Ruby on Rails 中向设计模型添加自定义字段。私有(private)方法错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34510155/