Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails模型验证挂起PUT请求_Javascript_Ruby On Rails_Backbone.js - Fatal编程技术网

Javascript Rails模型验证挂起PUT请求

Javascript Rails模型验证挂起PUT请求,javascript,ruby-on-rails,backbone.js,Javascript,Ruby On Rails,Backbone.js,在我的User.rb模型中有这样一个选项,用于在保存之前正确格式化用户的子域: def subdomain=(c) write_attribute(:subdomain, c.tr('^A-Za-z0-9', '').downcase) end 但是当我向API执行客户端(主干)PUT请求时,更新不包括子域的属性 Request Payload: { bg_hue: "359", id: 4 } ..上述自定义模型验证导致500响应,并指定以下错误: NoMethodError at

在我的User.rb模型中有这样一个选项,用于在保存之前正确格式化用户的子域:

def subdomain=(c)
   write_attribute(:subdomain, c.tr('^A-Za-z0-9', '').downcase) 
end
但是当我向API执行客户端(主干)PUT请求时,更新不包括子域的属性

Request Payload: { bg_hue: "359", id: 4 }
..上述自定义模型验证导致500响应,并指定以下错误:

NoMethodError at /user/4=================================> undefined method `tr' for nil:NilClass
也就是说,它挂在模型中的c.tr行上

我想我可以先检查请求是否在控制器中包含子域,然后尝试将其与子域一起保存或不与子域一起保存,我认为这应该可以解决上述问题,但我不能完全确定问题是什么


有什么建议吗?

错误消息告诉您未定义nil:NilClass的
方法'tr'。问题是传入的值
c
nil
。您可能应该这样做:

def subdomain=(c)
   write_attribute(:subdomain, c.tr('^A-Za-z0-9', '').downcase) unless c.nil?
end