Why are all Rails helpers available to all views, all the time? Is there a way to disable this?

Nate Smith picture Nate Smith · Jul 24, 2009 · Viewed 37.3k times · Source

Why can I access helper methods for one controller in the views for a different controller? Is there a way to disable this without hacking/patching Rails?

Answer

Craig Walker picture Craig Walker · Sep 28, 2011

@George Schreiber's method doesn't work as of Rails 3.1; the code has changed significantly.

However, there's now an even better way to disable this feature in Rails 3.1 (and hopefully later). In your config/application.rb, add this line:

config.action_controller.include_all_helpers = false

This will prevent ApplicationController from loading all of the helpers.

(For anyone who is interested, here's the pull request where the feature was created.)