首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么devise sanitizer返回空散列

为什么devise sanitizer返回空散列
EN

Stack Overflow用户
提问于 2019-01-28 15:57:33
回答 1查看 383关注 0票数 1

我正在编写一个纯API的Rails 5应用程序,并使用devise-jwt (和devise) gem进行用户身份验证。我正在尝试在我的自定义registrations_controller中配置强参数。在application_controller.rb

代码语言:javascript
复制
before_action :configure_permitted_parameters, if: :devise_controller?

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

registrations_controller.rb

代码语言:javascript
复制
def create
    build_resource(sign_up_params)
    resource.save
    #json response defined in application_controller.rb
    render_resource(resource)
end

这是我通过Postman向API发出POST请求时控制台的输出:

Parameters: {"first_name"=>"john", "last_name"=>"stones", "username"=>"johnstones", "email"=>"john@stones.com"}

这是将params打印到控制台的输出:

<ActionController::Parameters {"first_name"=>"john", "last_name"=>"stones", "username"=>"johnstones", "email"=>"john@stones.com", "controller"=>"registrations", "action"=>"create"} permitted: false>

尽管如此,当我执行devise_parameter_sanitizer.sanitize(:sign_up)时,我得到了一个空的散列,并且我前面提到的帖子抛出了我为包含空白字段而设置的验证错误。请帮我找出我错过了什么,谢谢。

(Rails 5.2/Devise 4.2)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-28 16:02:44

参数散列中缺少参数user

代码语言:javascript
复制
{"user": {"first_name"=>"john", "last_name"=>"stones", "username"=>"johnstones", "email"=>"john@stones.com"} }
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54397648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档