Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

Rails 4.2 with Ruby 2.4.9: undefined method `root' for JSONAPI::Rails:Module

Open
#1,332 2 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
1/5
Estimated time
Under an hour
Newbie friendliness
45/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Stale
Tech stack
rails, ruby
Domain
api, backend

Research direction

Start at lib/jsonapi/acts_as_resource_controller.rb:155, where base_url is assembled, and review the Rails application reference used there. Reproduce the request through the Api::TestsController example in config/routes.rb, then verify it no longer raises the undefined-method error and still builds the expected base URL.

Written by the indexing model from the issue text.

Description

This issue is a (choose one):

  • Problem/bug report.
  • Feature request.
  • Request for support. Note: Please try to avoid submitting issues for support requests. Use Gitter instead.

Checklist before submitting:

  • I've searched for an existing issue.
  • I've asked my question on Gitter and have not received a satisfactory answer.
  • I've included a complete bug report template. This step helps us and allows us to see the bug without trying to reproduce the problem from your description. It helps you because you will frequently detect if it's a problem specific to your project.
  • The feature I'm asking for is compliant with the JSON:API spec.

Description

As the title: controller raises the exception:

E, [2020-10-29T02:29:40.427579 #92859] ERROR -- : Internal Server Error: undefined method `application' for JSONAPI::Rails:Module /*/.rbenv/versions/2.4.9/lib/ruby/gems/2.4.0/gems/jsonapi-resources-0.10.2/lib/jsonapi/acts_as_resource_controller.rb:155:in `base_url'

which can be fixed with

    def base_url
-      @base_url ||= "#{request.protocol}#{request.host_with_port}#{Rails.application.config.relative_url_root}"
+      @base_url ||= "#{request.protocol}#{request.host_with_port}#{::Rails.application.config.relative_url_root}"
    end
# config/routes.rb
  namespace :api do
    jsonapi_resources :tests, only: %i[index]
  end

# app/controllers/api/tests_controller.rb
module Api
  class TestsController < ::Api::BaseController
  end
end

Dominant language
Ruby
Stars
2.3k
Forks
546
PR merge metrics
No merged PRs in 30d

Getting set up

We have not checked this project's setup files yet. Start from its README, and see our first-contribution guide for the general steps.

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.

More from JSONAPI-Resources/jsonapi-resources

All issues in JSONAPI-Resources/jsonapi-resources

Similar issues

More Ruby issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.