1

我已经在我的一个项目中使用Ransack,并且还使用Bullet在我的控制器中发现了一些 N+1 查询。但是,我不太确定在使用 Ransack 时如何做到这一点。涉及两个模型,PatchImage。和一个Patch has_one Image。动作代码如下:

  def index
    @q = Patch.search(params[:q])
    @patches = @q.result(distinct: true).order("code DESC").paginate(:page => params[:page], :per_page => 10)
  end

有什么想法吗?

4

1 回答 1

2

这在一个项目中对我有用。def index @q = Client.includes(zone: :user).ransack(params[:q]) @clients = @q.result.page(params[:page]).decorate end

在你的情况下应该是

def index
    @q = Patch.includes(:image).search(params[:q])
    @patches = @q.result(distinct: true).order("code DESC").paginate(:page => params[:page], :per_page => 10)
end
于 2015-07-05T15:23:29.300 回答