Rails ActionController Execute Same Code for Every Action
Use a filter in your ApplicationController to run the code for every action in your application. All your controllers descend from ApplicationController, so putting the filter there will ensure the filter gets run.
class ApplicationController before_filter :verify_security_token def verify_security_token; puts "Run"; end;end
It sounds to me like you're talking about filters.
class MyController < ActionController::Base before_filter :execute_this_for_every_action def index @foo = @bar end def new @foo = @bar.to_s end def execute_this_for_every_action @bar = :baz endend
You can put the filter on the ApplicationController, too, if you want every controller to run it.
before_filter
if you want the code to be executed "before" each action.If you want the action to be declared each time you use it, you can put it in
ApplicationController
and call the method in any controller.
Another approach is to use helpers like:
module PersonHelper def eat {.. some code ..} endend
And in your controller:
class MyController < ActionController::Base include PersonHelper def index eat endend