如何解决#<Shoulda::Matchers 的 Rails Minitest 未定义方法 `greater_than_or_equal_to'
我想在 Minitest 中使用 ShouldaMatchers gem 来检查简单的模型验证:
class Portfolio < ApplicationRecord
validates :share_ratio,numericality: { greater_than_or_equal_to: 0,less_than_or_equal_to: 100 }
end
为此,我有一个 Minitest:
require 'test_helper'
class PortfolioTest < ActiveSupport::TestCase
context 'validations' do
should validate_numericality_of(:share_ratio).greater_than_or_equal_to(0)
should validate_numericality_of(:share_ratio).is_less_than_or_equal_to(100)
end
end
但我收到一个错误:
class:PortfolioTest': #Shoulda::Matchers::ActiveModel::ValidateNumericalityOfMatcher:0x00007fba91da3ce0 (NoMethodError) 的未定义方法`greater_than_or_equal_to'
#Gemfile:
gem 'shoulda','~> 4.0'
gem 'shoulda-matchers','~> 4.0'
我尝试更改模型内部的验证:
validates_numericality_of :share_ratio,greater_than_or_equal_to: 0,less_than_or_equal_to: 100
但错误是一样的。
解决方法
你答对了其中之一,但没有答对。
should validate_numericality_of(:share_ratio).is_greater_than_or_equal_to(0)
should validate_numericality_of(:share_ratio).is_less_than_or_equal_to(100)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。