thoughtbot/shoulda-matchers · error · VerbNotDefinedError
You must specify an HTTP verb when using a non-RESTful actio
Error message
You must specify an HTTP verb when using a non-RESTful action. For example: for(:authorize, verb: :post)
What it means
Error "You must specify an HTTP verb when using a non-RESTful action. For example: for(:authorize, verb: :post)" thrown in thoughtbot/shoulda-matchers.
Source
Thrown at lib/shoulda/matchers/action_controller/permit_matcher.rb:325
{ for: subparameter_name }
else
{}
end
parameters_double_registry.permitted_parameter_names(options)
end
end
def unpermitted_parameter_names
expected_permitted_parameter_names - actual_permitted_parameter_names
end
def ensure_action_and_verb_present!
if action.blank?
raise ActionNotDefinedError
end
if verb.blank?
raise VerbNotDefinedError
end
end
def default_verb
case action
when :create then :post
when :update then RailsShim.verb_for_update
end
end
def parameter_names_as_sentence
expected_permitted_parameter_names.map(&:inspect).to_sentence
end
# @private
class CompositeParametersDoubleRegistry
def initialize
@parameters_double_registries = []View on GitHub (pinned to 79cdfbc326)
When it happens
Trigger: Thrown at lib/shoulda/matchers/action_controller/permit_matcher.rb:325 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of thoughtbot/shoulda-matchers@79cdfbc326 (2026-08-23).
Data as JSON: /api/errors/31f938020dd8cf9b.
Report an issue: GitHub.