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_Get_Persistence_Kaminari - Fatal编程技术网

Ruby on rails 3 在rails 3中编程非持久分页数组

Ruby on rails 3 在rails 3中编程非持久分页数组,ruby-on-rails-3,get,persistence,kaminari,Ruby On Rails 3,Get,Persistence,Kaminari,我有一个关于将来自远程http请求的非持久数据分页到API(或多个API)的问题 我的Rails 3应用程序向搜索引擎API发送一个net/http请求,并接收一个JSON对象。我正在将其加载到ruby中,并在视图中对结果进行分页。初始查询收到50次点击,Kaminari显示: @items=Kaminari.paginate_数组(数组).page(参数[:page]).per(10) 现在,当我在视图中单击第2页时,控制器再次执行JSON请求,而不是使用数组中的结果 这段代码在助手方法中,这

我有一个关于将来自远程http请求的非持久数据分页到API(或多个API)的问题

我的Rails 3应用程序向搜索引擎API发送一个net/http请求,并接收一个JSON对象。我正在将其加载到ruby中,并在视图中对结果进行分页。初始查询收到50次点击,Kaminari显示:

@items=Kaminari.paginate_数组(数组).page(参数[:page]).per(10)

现在,当我在视图中单击第2页时,控制器再次执行JSON请求,而不是使用
数组中的结果

这段代码在助手方法中,这是一个问题。我意识到将分页代码移动到控制器中将使这成为可能<代码>bing_搜索
立即返回
@items

if params[:bing]
  @bing = bing_search(@query)
end
我需要像这样的东西:

@items=Kaminari.paginate_数组(@bing).page(参数[:page]).per(10)


我只是想知道如何在分页时保持
数组。我刚刚研究了缓存,这看起来很有希望,但我还不知道它是如何工作的。

您需要将它存储在某个地方。记住,rails与任何其他服务器端语言都没有区别。它不会保留仅在内存中设置的变量。您要么需要使用某种类型的数据存储,要么将其放入会话中。有什么理由你不能把它扔进数据库,以后再通过cron作业来清理它吗?@agmcleod:是的,我需要把它保存在某个地方。会话变量会处理这个问题吗?我可以创建一个会话变量来存储结果,并在进行新搜索时覆盖它?是的,您可以在会话中存储对象,但通常最好不要这样做。像使用任何其他散列一样使用控制器中的会话对象<代码>会话[:some_key]=数组
谢谢agmcleod,但我决定使用db。不过,我将使用session_id作为列之一。这样我就可以检索单个会话的多个搜索。不过我在这里遇到了更多的麻烦:P