The dog is buried in ActionController::Base (the parent class of your ApplicationController class).
in The reason for this lies in In Rails 3:actionpack/actioncontroller/base.rb (around line 224)
def self.inherited(klass) super klass.helper :all if klass.superclass == ActionController::Base end
Since you usually derive your ApplicationController from ActionController::Base, all helpers will be included by default.
To come around this, call ‘clear_helpers’ (AbstractClass::Helpers; included in ActionController::Base) at the beginning of your controller’s code.
clear_helpers clears up all existing helpers in this class, only keeping the helper with the same name as this class.
Eg.:
class ApplicationController < ActionController::Base
clear_helpers
...
# your existing code
...
end