Rails 3全球数据的最佳实践

时间:2012-07-20 18:09:04

标签: ruby-on-rails-3 global-variables sunspot

我目前正在我的应用程序布局中的一个部分上渲染一个JQuery插件。这部分调用我的应用程序帮助器方法,该方法检索使用Sunspot-solr生成的数据。它检索的数据是在各种模型,上传,用户,文章等上创建的前30个最近创建的记录。我想知道如果它在我的应用程序中的每个视图中出现,加载此数据的最佳做法是什么?

显然,表现是我最关心的问题。

这就是我当前正在检索Application帮助程序中的数据的方法:

def get_updates
    @updates = Sunspot.search(Upload,Help,User) do    
      order_by(:created_at, :desc)
      paginate page: 1, per_page: 30
    end
    @updates = @updates.results
end

2 个答案:

答案 0 :(得分:0)

您可以在ApplicationController中的before_filter中获取该数据。然后,它可用于整个应用程序中任何控制器中呈现的任何视图。

伪代码:

class ApplicationController

  before_filter :load_top_30

  private

    def load_top_30
      @top_30 = Records.find() # whatever code you need to fetch the records
    end

end

现在您可以在任何视图中使用@top_30。帮助器不会(并且可能不应该)获取数据,因为它现在已经在实例变量中,只需将其传入。

答案 1 :(得分:0)

如果这只是你希望全局显示的这个项目,那么在ApplicationController中执行该项应该没问题,如果你有很多这样的元素,那么你可能想看看Cells基本上是可重用的子你可以打电话给你的观点或控制器。