Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 Rails 3全球数据的最佳实践_Ruby On Rails 3_Global Variables_Sunspot - Fatal编程技术网

Ruby on rails 3 Rails 3全球数据的最佳实践

Ruby on rails 3 Rails 3全球数据的最佳实践,ruby-on-rails-3,global-variables,sunspot,Ruby On Rails 3,Global Variables,Sunspot,我目前正在应用程序布局中的一个部分上呈现JQuery插件。这部分调用了一个my application helper方法,该方法检索使用Sunspot solr生成的数据。它检索的数据是最近创建的前30条记录,这些记录跨越各种模型、上传、用户、文章等。我想知道,如果这些数据出现在我的应用程序的每个视图上,加载这些数据的最佳做法是什么 显然,表现是我最关心的 以下是我当前在应用程序助手中检索数据的方式: def get_updates @updates = Sunspot.search(U

我目前正在应用程序布局中的一个部分上呈现JQuery插件。这部分调用了一个my application helper方法,该方法检索使用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

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

伪代码:

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
。助手不需要(也可以说不应该)获取数据,因为它现在已经存在于实例变量中,只需将其传入即可。

如果这只是您希望全局显示的一项,那么在ApplicationController中执行该操作就可以了,如果您有许多这样的元素,那么您可能想看看哪些基本上是可重用的子控制器,您可以从视图或控制器中调用这些子控制器