开发者

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 an开发者_StackOverflowyone who can help.


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

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

And in your controller:

class MyController < ActionController::Base
  include PersonHelper

  def index
     eat
  end
end
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜