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