Ruby on rails Shoulda:每个都有验证的未知错误
我花了很长时间试图理解我的验证方法遇到了什么问题 我安装了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
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值对其进行测试,这就是失败的原因