我在ruby(2.4)应用程序上有一个骨架导轨(4.2.8)来使用葡萄服务api,用于js前端。我在length.rb
有app/api/killbill/validations/
验证器
class Length < Grape::Validations::Base
def validate_param!(attr_name, params)
unless params[attr_name].length < @option
fail Grape::Exceptions::Validation, params: [@scope.full_name(attr_name)], message: "must be at the most #{@option} characters long"
end
end
end
我在base.rb
有一个名为app/api/killbill/beta_web
的文件,其中包含验证器
require "bcrypt"
require_relative '../validations/length'
module KillBill::BetaWeb
class Base < Grape::API
end
end
我在app/api/killbill/beta_web/caller.rb
params do
requires :name, type: String, allow_blank: true, desc: "Country name",length: 3
end
get "countries" do
query_param = "%#{params[:name]}%"
@countries = Country.where("name ilike ?", query_param)
end
当param长度小于3时,对此端点的api调用不会返回错误。 这里做错了什么?