Rails ActionController Execute Same Code for Every Action Rails ActionController Execute Same Code for Every Action ruby-on-rails ruby-on-rails

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