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