devise - Rails 4 参数和 "Unpermitted parameters"错误

标签 devise ruby-on-rails-4

我想做的只是创建一个用户(使用设计):

  def create
    user = User.create user_params
    user.save
    render :json => user
  end

  private
    def user_params
      params.require(:user).permit(:email, :password, :password_confirmation, :remember_me, :username)
    end

它不起作用,因为 user_params 仅返回:电子邮件和:用户名,没有密码。因此,我深入研究会发生什么 - 我向服务器发送此请求负载(从 Chrome 控制台):

{"email":"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="07667463476674632964686a66" rel="noreferrer noopener nofollow">[email protected]</a>","username":"test","password":"asdasdasd","password_confirmation":"asdasdasd"}

我在控制台中看到的内容:

Processing by UsersController#create as JSON
  Parameters: {"email"=>"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="d4b5a7b094b5a7b0fab7bbb9b5" rel="noreferrer noopener nofollow">[email protected]</a>", "username"=>"test", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "user"=>{"username"=>"test", "email"=>"<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="80e1f3e4c0e1f3e4aee3efede1" rel="noreferrer noopener nofollow">[email protected]</a>"}}
Unpermitted parameters: format, user
  1. 为什么我没有传递 :user 在 params 中?为什么它只是所有其余参数的副本以及为什么它缺少密码?
  2. 不允许的参数是什么意思?如何解决?
  3. 为什么我需要 require(:user)?似乎没有它一切都可以正常工作。

我想手册或其他内容中对所有这些事情都有简单的解释,但我找不到它(

最佳答案

将 JSON 包装在以模型命名的根元素中:

{"user": 
  {
   "email":    "<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cdacbea98dacbea9e3aea2a0ac" rel="noreferrer noopener nofollow">[email protected]</a>",
   "username": "test",
   "password": "asdasdasd",
   "password_confirmation": "asdasdasd"
  }
} 

关于devise - Rails 4 参数和 "Unpermitted parameters"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20024650/

相关文章:

ruby-on-rails - 从 Rails 4 中的数组获取路径

devise - 使用 devise 禁用 IP 地址日志记录

ruby-on-rails - rails 4.2 : Role Based Auth and Separate Attributes

ruby-on-rails - CanCan、Rails 4、虚拟属性上的 UnknownAttribute 错误

ruby-on-rails - 无法更改 active_admin 列宽

jquery - 在 Rails 4 中处理 AJAX 调用(成功、错误、发送前、完成)

ruby-on-rails - Rails 4 销毁操作,undefined_method message_path

ruby-on-rails - 访问设计配置变量

ruby-on-rails - 根据登录时的用户角色设计重定向到特定页面

ruby-on-rails-3 - 设计 i18n 资源