Ransack自定义默认排序

时间:2013-09-02 07:04:39

标签: ruby-on-rails controller ransack

在我的下半年度过这个希望之后,只需要一些新鲜的眼睛。在trying to set a default使用ransack排序我的索引控制器时出现此错误,我不知道为什么

undefined method `split' for #<Post:0x007fabedac69a8>

这是我的控制器

class PostsController < ApplicationController
  def index
    @search = Post.search(params[:q])
    @search.sorts = Post.find_with_reputation(:votes,:all, order: "votes desc") if @search.sorts.empty?
    @posts = @search.results
  end
end

使用活动记录信誉,并希望默认加载按最高投票排序,如您所见。也许有更好的方法来实现页面加载排序的投票并允许搜索搜索?此刻彻底迷茫。

1 个答案:

答案 0 :(得分:2)

而不是 @ search.sort 尝试将其分配给另一个变量。而不是结果使用结果

class PostsController < ApplicationController
  def index
    @search = Post.search(params[:q])
    @search_r = Post.find_with_reputation(:votes,:all, order: "votes desc") if @search.sorts.empty?
    @posts = @search_r.result
  end
end