Ruby on rails 对从ActiveRecord或ThinkingSphinx获取的集合进行排序

Ruby on rails 对从ActiveRecord或ThinkingSphinx获取的集合进行排序,ruby-on-rails,ruby,ruby-on-rails-3,activerecord,thinking-sphinx,Ruby On Rails,Ruby,Ruby On Rails 3,Activerecord,Thinking Sphinx,我有两个问题 有没有一种方法可以对ActiveRecord或Thinking Sphinx中的集合进行排序,而无需从数据库/Sphinx中重新选择所有内容? 即 @models=Model.where(“foo=:foo”,{:foo=>params[:foo]}) 模型。一些编码或方法将改变一切 这个游戏值一根蜡烛吗(排序数组/集合而不重新获取)?我想知道哪个选项对性能更好 提前谢谢 编辑 因此,当你: 不要使用分页(您必须拥有所有记录) 使用ajax刷新页面div(不再使用调用索引或显示操

我有两个问题

  • 有没有一种方法可以对ActiveRecord或Thinking Sphinx中的集合进行排序,而无需从数据库/Sphinx中重新选择所有内容? 即

    @models=Model.where(“foo=:foo”,{:foo=>params[:foo]})
    模型。一些编码或方法将改变一切

  • 这个游戏值一根蜡烛吗(排序数组/集合而不重新获取)?我想知道哪个选项对性能更好

  • 提前谢谢

    编辑

    因此,当你:

    • 不要使用分页(您必须拥有所有记录)
    • 使用ajax刷新页面div(不再使用调用索引或显示操作获取所有内容)

    为艺术而艺术。

    我非常确定“排序”应该有效:

      @models.sort! { |a,b| a.foo <=> b.foo }
    
    @models.sort!{| a,b | a.foo b.foo}
    

    回答第二个问题,是的。这在很大程度上取决于集合中对象的数量,但通常这是一个性能胜利

    您不能作为数据库/Sphinx调用的一部分进行排序吗?这样,DB/Sphinx就为您完成了所有的艰苦工作(并且可能比您的Ruby代码更快)。这也意味着分页的搜索结果将被排序,然后分页。最初,db将排序更快。但是,如果您需要相同的数据集,但顺序不同,那么您将需要另外一个查询,即db和ruby orm。这绝对比ruby排序慢