Yesterday I carelessly made a typo on case of directory name. Result in Rails can’t find file correctly. But when I try to rename it. I found out that git doesn’t recognize a change that same name in differ case (case-insensitive).
Althought I can run this
git config core.ignorecase false
to make git case-sensitive. But this can cause unexpected consequence on other projects.
I read some tutorials（How do I rename a file in git that differs by case only?、 git mv and only change case of directory）
And this is my final solution：
mv Typo typo_temp git add . # add to staging area mv typo_temp typo git add . git commit -m "Fix case typo"
In some tutorials, they commit on “typo_temp” step. While I just put it in staging area, it still work.
BTW, the mistake I made is:
/users routes to
/app/controller/api/users_controller (like scope :module). The purpose is to remain API url but move code file to a sub directory.
# config/routes.rb get "users" => "api/users_controller#index"
But, Yes, I made the typo on
api/ folder (as
The strange thing is, it works on my laptop. But throws this expection on production machine:
ActionController::RoutingError (uninitialized constant Api)
Why it doesn’t break on my laptop!? Really strange @_@