0

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

显然,性能是我最关心的问题。

这就是我目前在我的应用程序助手中检索数据的方式:

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
4

2 回答 2

0

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

伪代码:

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在任何视图中使用。助手不需要(并且可以说不应该)需要获取数据,因为它现在已经在一个实例变量中,只需将其传入即可。

于 2012-07-20T18:13:16.300 回答
0

如果这只是您希望全局显示的一项,那么在 ApplicationController 中执行它应该没问题,如果您有很多这样的元素,那么您可能想看看Cells基本上是可重用的子控制器,您可以将其称为 form您的视图或控制器。

于 2012-07-20T22:24:16.713 回答