对于那里的rails专家,我想知道你在哪里/如何为你的Web应用程序中的每个动作执行相同的代码?如果你能指出我的文章或提供一个简短的代码片段,我将非常感激。
提前感谢任何可以提供帮助的人。
答案 0 :(得分:31)
在ApplicationController中使用过滤器为应用程序中的每个操作运行代码。所有控制器都来自ApplicationController,因此将过滤器放在那里将确保过滤器运行。
class ApplicationController
before_filter :verify_security_token
def verify_security_token; puts "Run"; end;
end
答案 1 :(得分:15)
听起来像你在谈论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
如果您希望每个控制器都运行它,您也可以将过滤器放在ApplicationController上。
答案 2 :(得分:2)
before_filter
如果您希望代码在每个操作“之前”执行。
如果您希望每次使用时都声明操作,可以将其放入ApplicationController
并在任何控制器中调用该方法。
另一种方法是使用帮手,如:
module PersonHelper
def eat
{.. some code ..}
end
end
在你的控制器中:
class MyController < ActionController::Base
include PersonHelper
def index
eat
end
end