使用 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/

10-14 15:59
查看更多