Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rails ActionController Execute Same Code for Every Action

To the rails experts out there I was wondering where/how you would execute the same code for every action in your web application? If you can point me to an article or provide a short code snippet I would greatly appreciate it.

Thanks in advance to anyone who can help.

like image 993
Brian DiCasa Avatar asked Feb 10 '10 02:02

Brian DiCasa


2 Answers

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
like image 138
Sam Coles Avatar answered Sep 18 '22 05:09

Sam Coles


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
  end
end

You can put the filter on the ApplicationController, too, if you want every controller to run it.

like image 27
Matchu Avatar answered Sep 22 '22 05:09

Matchu