나는 어려움을 겪고되었을 이해의 몇 가지 일하고 바라고 누군가가 도움이 될 수 있습니다. 무언가가있을 수 있다는 명백한 목표를 설정했습니다.!
내가 사용하고사 플러그인에 대한 레일을 업로드하는 PDF 파일 생성하기 위한 첫 번째 페이지로 이동합니다. PDF 드에서 지정한 저장 공간 축소판이 만들어지고 점점에서 정렬은 같은 위치에 있습니다. 그러나 나는 할 수 없 표시 썸네일에는 뷰입니다.
이니셜라이저:
require "shrine"
require "shrine/storage/file_system"
#require "shrine/storage/memory"
Shrine.storages = {
cache: Shrine::Storage::FileSystem.new("public", prefix: "uploads/cache"),
store: Shrine::Storage::FileSystem.new("public", prefix: "uploads/store")
}
Shrine.plugin :activerecord # loads Active Record integration
Shrine.plugin :cached_attachment_data # enables retaining cached file across form redisplays
Shrine.plugin :restore_cached_data # extracts metadata for assigned cached files
Shrine.plugin :determine_mime_type
Shrine.plugin :validation_helpers
Shrine.plugin :validation
Shrine.plugin :derivatives
#Shrine.plugin :model, cache: false
Uploader:
require "image_processing/mini_magick"
class FileUploader < Shrine
include ImageProcessing::MiniMagick
plugin :processing # allows hooking into promoting
plugin :versions # enable Shrine to handle a hash of files
plugin :derivatives
plugin :default_url
# plugin :delete_raw # delete processed files after uploading
Attacher.validate do
validate_max_size 5*1024*1024, message: "is too large (max is 5 MB)"
validate_mime_type %w[application/pdf]
end
Attacher.derivatives do |original|
magick = ImageProcessing::MiniMagick.source(original).loader(page:0).convert("jpeg")
{
thumb: magick.resize_to_limit!(200, 200)
}
end
end
테스트보기:
<p id="notice"><%= notice %></p>
<p>
<strong>Number:</strong>
<%= @issue.number %>
</p>
<p>
<strong>Title:</strong>
<%= @issue.title %>
</p>
<p>
<strong>Data:</strong>
<%= @issue.file_data %>
</p>
<p>
<strong>Issue Preview</strong>
<embed src="<%= @issue.file_url %>" width="80" height="160" />
</p>
<p>
<strong>Issue Thumbnail:</strong>
<%= image_tag @issue.file_url(:thumb) if @issue.file %>
</p>
<p>
<strong>Issue:</strong>
<%= image_tag @issue.file_url if @issue.file %>
</p>
<%= link_to 'Edit', edit_issue_path(@issue) %> |
<%= link_to 'Back', issues_path %>
또한,볼 때에 저장된 데이터 file_data 분야 전혀 보이지 않는 정보를 추가합니다.
파일 데이터:{"id":"fccd20a9323aa5b63fd912f4ca833ebb.pdf","storage":"store","metadata":{"filename":"pdf_sample.pdf","size":351987,"mime_type":"application/pdf"}}