1

プロジェクトの 1 つでRansackを使用し、 Bulletを使用してコントローラーで N+1 クエリを見つけました。ただし、Ransack を使用しているときにそれを達成する方法がよくわかりません。関連する 2 つのモデルがありPatchますImage。そして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 に答える