未触发葡萄自定义验证

时间:2017-11-07 12:39:05

标签: ruby-on-rails ruby grape grape-api

我在ruby(2.4)应用程序上有一个骨架导轨(4.2.8)来使用葡萄服务api,用于js前端。我在length.rbapp/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调用不会返回错误。 这里做错了什么?

0 个答案:

没有答案