我正在使用Rails 5

我在model User中添加了新的字段用户名.

class Users::RegistrationsController < Devise::RegistrationsController
  before_action :configure_permitted_parameters

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.for(:sign_up).push(:username)  
  end
end

注册期间显示错误:undefined method `for' for # Did you mean? fork

跟踪:

NoMethodError(未定义的"for"方法#

app/controllers/users/registrations_controller.rb:7:in `configure_permitted_parameters'
  Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout
  Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb
  Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_source.html.erb (5.0ms)
  Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb
  Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (2.9ms)
  Rendering /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb
  Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.2ms)
  Rendered /usr/local/rvm/gems/ruby-2.3.0/gems/actionpack-5.0.0.rc1/lib/action_dispatch/middleware/templates/rescues/diagnostics.html.erb within rescues/layout (118.1ms)

谁能帮忙?如何解决这个问题?

推荐答案

According to the documentation:

设备4的Sanitaizer API参数已更改

class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:username])
  end
end

Ruby-on-rails相关问答推荐

Rails 7.1解决冲突的Zeitwerk Inflection规则

使用ImportMaps将HighLightJS添加到rails 7.1

Rails 7.1,登录到STDOUT和LOG/Production.log

删除链接不起作用,重定向 echo 示 Ruby

Rails 创建自定义函数/方法以及存储位置

为什么 Image_tag 产生images/...而不是assets/....?

在 Rails 6.1 升级后,作业(job)规范使用 Minitest::UnexpectedError 包装错误

在 Rails 中进行 Http 基本身份验证

我如何在不同的视图中使用助手

如何获取 Ruby on Rails 生成的表单元素 id 以供 JavaScript 参考?

如何避免 RSpec 3.0 中 stub_chain 的弃用警告?

如何在 ruby​​ on rails 中获取控制器和操作列表?

如何在 Rails 应用程序中使用长 id?

如何在 rspec 测试中输出变量?

在 Rails 中创建随机 DateTime 的最佳方法

警告:引用了顶级常量

如何在rails中异步加载部分页面

在 Devise on Rails beta 3 中创建管理员用户

'respond_to' 格式语句中的 `:location => ...` 和 `head :ok` 是什么意思?

我什么时候需要在 Rails 中重新启动服务器?