Override Rails controller routing with capital letters in model name

You should set custom controller name, in routes.rb:

resources :abc_things, :only => [:index], :controller => "ABCThings"

I had this issue and after trying all of the above solutions; was able to fix my problem using the inflector.

In my case the issue was that TLA::ThingsController was being resolved as Tla::ThingsController

putting the following in my initializers folder fixed it

config/initializers/inflections.rb

ActiveSupport::Inflector.inflections do |inflect|
  inflect.acronym 'TLA'
end

This may have changed with Ruby at some point, but for naming classes with multiple caps in a row (acronyms or initialisms), you no longer need to include the underscore in the file name.

# abc_thing.rb

could contain

class ABCThing

  def hello
    puts "Hello World"
  end

end

or

class AbcThing

  def hello
    puts "Hello World"
  end

end