【Rails】link_to로 format 지정
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
포맷에 따라 말미에 .フォーマット形式
의 형태로 추가된다고 하는 것이군요~
Reference
이 문제에 관하여(【Rails】link_to로 format 지정), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/koki_73/items/a9a59835755b995b3ed1텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)