Ruby Error

NoMethodError

NoMethodError is raised when a method is called on an object that doesn't define it. This commonly happens when calling a method on nil, or when there's a typo in the method name.

Common causes

  • Calling a method on nil (e.g., user.name when user is nil)
  • Typo in method name (e.g., user.nmae instead of user.name)
  • Calling a private method from outside the class
  • Missing require/include for a module
  • Method defined in a different scope or class

How to fix it

  • Use safe navigation operator (&.) to handle nil: user&.name
  • Add nil checks before calling methods: user.name if user
  • Use try() in Rails: user.try(:name)
  • Check for typos in method names
  • Ensure the correct module/gem is required

Example

NoMethodError example
# Error example
user = nil
user.name  # => NoMethodError: undefined method 'name' for nil:NilClass

# Fix with safe navigation
user&.name  # => nil (no error)

# Fix with conditional
user.name if user  # => nil (no error)

Track NoMethodError with Checkend

Checkend automatically captures NoMethodError errors in your Ruby application with full context:

  • Complete backtrace with syntax highlighting
  • Request context (URL, params, headers)
  • Automatic grouping of similar errors
  • Instant notifications when errors occur

Stop debugging in production

Get full error context and fix issues faster with self-hosted error tracking.