如何检查参数的值是一定范围内的数字

How do I check that the value of a param is a number in a certain range

我正在尝试为发送 POST 请求的方法编写测试套件,该请求的参数 'target' 必须介于 0 和 10

之间

我的Rubyclass:

class ClassName
  before_action :must_have_valid_target

  def create
     target = params[:target]
     . . .
  end 

  def must_have_valid_target
    return if params.key?(:target)
    error_response(422, 'error message')
  end
end 

我的Rspec

it 'cannot create request with negative target' do
  post(:create, {target: -1})
  assert_response(422) # actual result is: Expected 422, Actual 200
end 

我试过了:

def must_have_valid_target
  valid = params[:target].between?(0,10)
end

但这不起作用。我如何检查符号的值是否介于范围之间,以便我可以在之后给出正确的响应?

这不是家庭作业,我正尝试在我的工作场所向代码库添加额外的测试,但我对 RSpec 和 Ruby 还是很陌生。

params[:target] 是一个字符串,在比较之前转换为整数,

def must_have_valid_target
  params[:target].present? && params[:target].to_i.between?(0,10)
end