获取错误:对于Shoulda :: Matchers,未定义的方法`greater_than_or_equal_to'

时间:2013-01-17 16:00:38

标签: ruby-on-rails-3 unit-testing activerecord rspec2 shoulda

这是我试图通过的规范:

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

那为什么这不起作用?我该怎么办才能让它发挥作用?

2 个答案:

答案 0 :(得分:2)

该方法在您应用中的原始thoughtbot/shoulda-matchers中不存在。你所引用的版本是原始宝石的一个分支。

您可以使用此gem而不是原始gem,只需在Gemfile

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

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

答案 1 :(得分:0)

它必须为is_greater_than_or_equal_to(带有is_前缀),而不是greater_than_or_equal_to

查看文档:{​​{3}}