【Rails】link_to로 format 지정

3325 단어 루비Rails슬림
타이틀대로, link_to 메소드로 포맷을 지정하는 방법에 대해서입니다

꽤 쉽지만, 의외로 기사가 히트하지 않았기 때문에 비망록적으로 남겨 둡니다.

원래 format이란?



출력 형식입니다.
일반적으로 HTML 형식으로 HTML 파일이 렌더링됩니다.
그 외에도 json 형식이나 pdf, csv 등이 있습니다.

이번에는 PDF의 출력을 상정해 보겠습니다.

링크를 작성하는 방법



path 인수에 format을 지정하기만 하면 됩니다!

슬림 파일
= link_to '表示名', xxx_path(format: :pdf)

그 밖에 id를 지정하거나 parameter를 설정하는 경우에도 똑같이 인수에 돌진해서 OK입니다

슬림 파일
= link_to '表示名', xxx_path(format: :pdf, id: @post, parameter_name: parameter_content)

컨트롤러로 처리



컨트롤러에서는 format을 지정해 처리를 기술하면 OK
pdf의 경우 send_file을 사용하여 파일을 표시하거나 다운로드하는 경우가 많다고 생각합니다.
다음과 같이 작성하면 파일 이름을 지정하여 브라우저에서 PDF 파일을 열 수 있습니다.

컨트롤러
class HogesController < ApplicationController
  def show
    respond_to do |format|
      format.pdf do
        send_file(pdf_path, filename: filename, disposition: 'inline')
      end
    end
  end

  private

  def pdf_path
    # pdfの保存場所を指定
    @post.pdf.path # ← carrierwave使ってればこんな感じかな
  end

  def filename
    # pdfのファイル名を指定
    "#{@post.id}.pdf"
  end
end

여담



rails routes를하면 URI 패턴 안에 (.:format)가 있습니다.
이 형식을 지정하면 URI가됩니다.


예를 들어 이번과 같이 format을 pdf로 한 경우는 URL이 https://xxxxxx/xxx.pdf포맷에 따라 말미에 .フォーマット形式 의 형태로 추가된다고 하는 것이군요~

좋은 웹페이지 즐겨찾기