从ActiveRecord或ThinkingSphinx中对获取的集合进行排序

时间:2011-08-11 10:56:14

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord thinking-sphinx

我有两个问题。

  1. 有没有办法从ActiveRecord或Thinking Sphinx中对集合进行排序,而无需从数据库/ sphinx中重新选择所有内容? 即

    @models = Model.where("foo = :foo", {:foo => params[:foo]}) models.some_code_or_method_which_will_resort_everything

  2. 这个游戏是否值得一试(排序数组/集合而不再提取)?我想知道哪种选择对性能更好。

  3. 提前致谢。

    修改

    所以,当你:

    时,这场比赛值得一试
    • 不要使用分页(您必须拥有所有记录)
    • 使用ajax刷新页面div(不要使用调用索引或显示操作再次获取所有内容)

    艺术为艺术着想..

1 个答案:

答案 0 :(得分:5)

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

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

回答第二个问题,是的,确实如此。它几乎取决于集合中的对象数量,但通常通常是性能获胜