当前位置:  开发笔记 > 后端 > 正文

强参数:params.permit返回未允许的参数,尽管白名单

如何解决《强参数:params.permit返回未允许的参数,尽管白名单》经验,为你挑选了0个好方法。

UsersProfileController具有强大的参数,如下所示:

    def user_profile_params
      params.permit(:age, :relations)
      # yes, I am not requiring user_profile. Just permitting attributes I need. 
    end

create动作通过父(has-one和belongs-to association)构建UserProfile

    def create
      parent = Parent.create_guest
      parent.build_user_profile(user_profile_params)
      if parent.save 
        # do something 
      else 
        # handle error
      end
    end

在UserProfiles中调用params返回:

    "23", 
       "relations"=>"3", 
       "subdomain"=>"api", 
       "format"=>:json, 
       "controller"=>"api/v1/user_profiles", 
       "action"=>"create"} 
     permitted: false>

调用user_profile_params,返回:

    user_profile_params:
      Unpermitted parameters: subdomain, format
      "23", 
       "relations"=>"3", } 
      permitted: true>

当发布请求时,我希望能够使用user_profile_params中的白名单参数创建user_profile.相反,createUserProfiles中的操作失败,错误:Unpermitted parameters: subdomain, format.

这不是我的预期.我希望user_profile_params只包含允许的值并忽略所有其他值.

我可以添加:format:subdomain列出允许的属性,但有些东西感觉有点不对劲.

有人可以解释发生了什么/我错过了什么?

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有