ruby-grape / ruby-grape/grape

custom validators won't autoload

Open
#1,102 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

bug?
Dominant language
Ruby
Stars
10k
Forks
1.2k
Avg merge
14h 38m
Merged PRs (30d)
92

Description

Custom Validators

class AlphaNumeric < Grape::Validations::Base
  def validate_param!(attr_name, params)
    unless params[attr_name] =~ /^[[:alnum:]]+$/
      fail Grape::Exceptions::Validation, params: [@scope.full_name(attr_name)], message: "must consist of alpha-numeric characters"
    end
  end
end
params do
  requires :text, alpha_numeric: true
end

This part of code is from Grape's Readme doc.

The problem is, when requires :text, alpha_numeric: true is call, AlphaNumeric won't be autloaded, because of method 'alpha_numeric' called, not Class 'AlphaNumeric'.

Please let me know if I was wrong.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the custom validator example in the README and trace the validation entry point reached by alpha_numeric: true, including how the validator class is resolved. Done means the documented AlphaNumeric validator autoloads and the example works without requiring the class manually.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
api
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.