Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.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
Ruby on rails Shoulda:每个都有验证的未知错误_Ruby On Rails_Ruby_Validation_Shoulda - Fatal编程技术网

Ruby on rails Shoulda:每个都有验证的未知错误

Ruby on rails Shoulda:每个都有验证的未知错误,ruby-on-rails,ruby,validation,shoulda,Ruby On Rails,Ruby,Validation,Shoulda,我花了很长时间试图理解我的验证方法遇到了什么问题 我安装了shoulda,当我试图使用它时,它错误地使用了一个奇怪的未定义方法NoMethodError:undefined方法'[],用于false:FalseClass,这非常奇怪 我把范围缩小到这段令人不快的代码: validates_each :name do |record, attr, value| name_hash = self.parse_name(value) record.errors.add attr, 'must

我花了很长时间试图理解我的验证方法遇到了什么问题

我安装了shoulda,当我试图使用它时,它错误地使用了一个奇怪的未定义方法
NoMethodError:undefined方法'[],用于false:FalseClass
,这非常奇怪

我把范围缩小到这段令人不快的代码:

validates_each :name do |record, attr, value|
  name_hash = self.parse_name(value)
  record.errors.add attr, 'must have a first and last name' if
    ( name_hash[:first_name].nil? || name_hash[:last_name].nil? )
end
您可以在以下位置查看完整错误、违规模型(简化)、测试用例和环境信息:


如果您有任何见解,我们将不胜感激。

您的
parse\u name
方法以以下行开头:

return false unless name.is_a?(String)
这表明当您尝试验证该值时,该值不是字符串(可能是nil)。
validate\u presence\u的shoulda matcher将使用nil值对其进行测试,这就是失败的原因