设计参数消毒器 "For" 未找到方法 Rails 5
Devise Parameter Sanitizer "For" Method Not Found Rails 5
我刚刚在闪亮的新 Rails 5 应用程序中添加了设计。在我尝试将用户名添加到 Devise 用户模型之前,一切都很好。一切正常,直到我 运行 它并转到 localhost:3000/users/sign_up,在那里我遇到了这个错误:
undefined method `for' for #<Devise::ParameterSanitizer:0x007fa0dc31c1b0> Did you mean? fork
我在Google的妙处搜索过任何结果,只给出过时的,Rails 4个错误和解决方案,与搜索Stack Overflow本身相同。我无法找到可行的解决方案。非常感谢帮助。以下是我为此做的准备:
- 创建迁移:
rails generate migration add_username_to_users username:string:uniq
- 迁移数据库
rake db:migrate
- 向应用程序控制器添加强参数
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(..) }
- 将用户名参数添加到设计视图
- 重启服务器
我有什么遗漏或做错了什么吗?
.for 方法已弃用,从 devise 4.1+ 开始,.permit 方法可用
试试.permit.
应该可以。
devise_parameter_sanitizer.permit(:my_action) { |u| u.permit(..) }
希望这对您有所帮助:)
@Shadow 很好地提到了这个问题,但这个语法对我有用:
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :email])
devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, :phone, :email, bank_attributes:
[:bank_name, :bank_account]])
end
我刚刚在闪亮的新 Rails 5 应用程序中添加了设计。在我尝试将用户名添加到 Devise 用户模型之前,一切都很好。一切正常,直到我 运行 它并转到 localhost:3000/users/sign_up,在那里我遇到了这个错误:
undefined method `for' for #<Devise::ParameterSanitizer:0x007fa0dc31c1b0> Did you mean? fork
我在Google的妙处搜索过任何结果,只给出过时的,Rails 4个错误和解决方案,与搜索Stack Overflow本身相同。我无法找到可行的解决方案。非常感谢帮助。以下是我为此做的准备:
- 创建迁移:
rails generate migration add_username_to_users username:string:uniq
- 迁移数据库
rake db:migrate
- 向应用程序控制器添加强参数
devise_parameter_sanitizer.for(:sign_up) { |u| u.permit(..) }
- 将用户名参数添加到设计视图
- 重启服务器
我有什么遗漏或做错了什么吗?
.for 方法已弃用,从 devise 4.1+ 开始,.permit 方法可用
试试.permit.
应该可以。
devise_parameter_sanitizer.permit(:my_action) { |u| u.permit(..) }
希望这对您有所帮助:)
@Shadow 很好地提到了这个问题,但这个语法对我有用:
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :email])
devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, :phone, :email, bank_attributes:
[:bank_name, :bank_account]])
end