如何在所有视图的页脚中添加动态部分?

时间:2012-03-03 13:18:05

标签: ruby-on-rails

我继承了多年前编写的旧版Rails应用程序,在2.x版本上运行。我仍然在努力围绕Rails和ActiveRecord的一些基本概念。

我要在每个页面的底部添加一个动态活动流,列出某人所做的最新更改。

要获取活动流,我有一个关于厄运的巨大SQL查询。在我的postgres数据库中,我已将所述查询转换为简单的数据库视图(基本上是一个虚拟的只读表),我可以像这样查询:

SELECT * FROM recent_activity LIMIT 4

在我的应用程序的每个页面上准备这些数据以在页脚中使用的适当方法是什么?

它应该有自己的型号吗?它自己的控制器?我可以在某个页面上自动包含这个吗?

1 个答案:

答案 0 :(得分:0)

您必须使用此查询的内容为视图布局提供一些变量。 想到一个快速而肮脏的解决方案是在ApplicationController中使用'before_filter',即

before_filter :get_footer

      def get_footer
        # do your sql query here and save it in an instance variable like @footer
      end

这应该将varieble @footer设置为所需的值,并使其在视图中可访问。

然后,您可以在包含@footer的全局应用程序布局中添加一行(可能会稍微格式化输出)