[英]Rails: Validates greater_than_or_equal_to 0 does not work
[英]Rails Minitest undefined method `greater_than_or_equal_to' for #<Shoulda::Matchers
我想在 Minitest 中使用 ShouldaMatchers gem 来检查简单的 model 验证:
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'
我尝试更改 model 内部的验证:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.