我想渲染一个正在执行的动作的视图。基本上我有一些需要在每一页上显示的“即将到来的预订”。它可以快速查看即将发布的内容,以便用户可以全面了解正在发生的事情。
我计划做的是为该特定操作设置一个缓存机制,因此当我渲染它时,很可能在布局中,那么它会很快。
这可能吗?似乎渲染模板和渲染部分不调用动作,这意味着在该视图中可访问的实例变量不可用,或者它们根本不执行我想要的操作。
答案 0 :(得分:2)
嗯,如果我理解你的问题,我想你想用before_filter
。 before_filter
是在before_filter
注册的任何控制器或其任何后代的每个操作之前运行的回调。
如果您真的想在任何控制器的任何操作之前调用一个函数,那么我建议这样做的方式是ApplicationController
,那么它将在任何继承自{{ActionController
的控制器上的任何操作上执行。 1}}。
class ApplicationController < ActionController::Base
before_filter :do_something
def do_something
WHATEVER IT IS YOU WANT TO DO INCLUDING SETTING INSTANCE VARIABLES
end
end
然后你可以保证在任何行动之前都会调用do_something
。
希望这有帮助。