Active Storage의 N+1 문제 해결

2386 단어 RubyRails

개시하다


Active Storage를 사용하여 이미지를 호출할 때 N+1 문제가 발생하므로 먼저 해결 방법을 적으십시오.Active Storage 개요는 여기.부터 시작하십시오.

with_attached_attachment_사용name


Active Storage에 역할 영역with_attached_attachment_name이 있습니다.with_attached_attachment_name 내에서 includes("#{name}_attachment": :blob)처럼 관련 블로그 include.다음은 책의 예입니다.
model/book.rb
class Book < ApplicationRecord
  has_one_attached :book_image
end
has_one_attached 사용 방법은 book_image Active Storage와 함께 제공됩니다.이것은 범위 with_attached_book_image 를 만들 것입니다.with_attached_book_image로 대체all합니다.

올이 모든 북을 얻었을 때


controller/book_controller.rb
class BooksController < ApplicationController
  def index
    @books = Book.all
  end

역시 N+1에 문제가 있어.

with_attached_book_이미지로 모든 북을 가져오는 경우


controller/book_controller.rb
class BooksController < ApplicationController
  def index
    @books = Book.with_attached_book_image
  end

문제 해결.

총결산


Active Storage를 처리할 때는 includewith_attached_attachment_name와 관련된 블로그를 사용합니다.

좋은 웹페이지 즐겨찾기