轨道上的红宝石 3 - 收到错误:应该::匹配器的未定义方法 'greater_than_or_equal_to'



这是我试图通过的规范:

context "when validating format of attributes" do
    it { should validate_numericality_of(:price).greater_than_or_equal_to(0.01) }
end

我安装了rspecshoulda-matchers。但我得到undefined method greater_than_or_equal_to' '

这个方法没有在文档中但是它在这里存在:

https://github.com/moffff/shoulda-matchers/commit/7da06487d25c27d59d11fb7f2962e7ff345e45c4

那么为什么这不起作用呢?我该怎么做才能让它起作用呢?

该方法在您的应用程序中的原始thoughtbot/shoulda-matchers中不存在。您引用的版本是原始gem的分支。

你可以用这个gem代替原来的gem,只要在Gemfile

中设置它的source
gem 'shoulda-matchers', :git => 'https://github.com/moffff/shoulda-matchers.git'

但是您应该明白,分叉和修改的版本可能不稳定,不包括最新的更新和修复,等等。

必须是is_greater_than_or_equal_to(加is_前缀),不能是greater_than_or_equal_to

参见文档:https://matchers.shoulda.io/docs/v4.1.2/Shoulda/Matchers/ActiveModel.html#validate_numericality_of-instance_method

相关内容

  • 没有找到相关文章

最新更新