Problema cu Url-uri pentru miniaturile create folosind Altar plugin-ul de pe Șine 6

0

Problema

Am fost lupta cu acest lucru pentru câteva zile și în speranța că cineva poate ajuta. Nu poate fi ceva evident că îmi lipsește!

Eu sunt, folosind Altar plugin pentru Șine de a încărca fișiere PDF și de a genera o miniatură pentru prima pagina. PDF-ul se încarcă în desemnată spațiu de stocare și o miniatură, de asemenea, obtinerea creat și s-a rezolvat în aceeași locație. Cu toate acestea eu nu sunt în măsură pentru a afișa miniatură în vedere.

Inițializare:

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

Testarea Vedere:

<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 %>

De asemenea, atunci când mă uit la datele stocate în file_data domeniul văd nici o informație adăugată pentru miniatură.

Fișier de Date: {"id":"fccd20a9323aa5b63fd912f4ca833ebb.pdf","storage":"store","metadata":{"filename":"pdf_sample.pdf","size":351987,"mime_type":"application/pdf"}}

pdf ruby-on-rails shrine thumbnails
2021-11-20 21:41:41
2
0

Ai nevoie să fie de a permite crearea automată pe atașament de promovare pentru depozitare permanentă:

Shrine.plugin :derivatives, create_on_promote: true

Sau procesul derivate manual pe atașament:

record.file_derivatives!
2021-11-21 19:40:25

Vă mulțumim pentru răspunsul dumneavoastră rapid. Am încercat de prelucrare a instrumentelor derivate în ambele sensuri-ai sugerat mai sus și miniatura devine creat si sponsorizat împreună cu atașament pdf fără nici o problemă. Pot apela, de asemenea, acces la URL-ul pentru fișierul din punctul meu de vedere prin @problema.file_url. Singurul lucru care nu este de lucru pentru mine este URL-ul pentru miniatură @problema.file_url(:degetul mare). datele pentru miniatura este, de asemenea, stocarea în file_data coloana: {"id":"a94c1a6e31176ed530b786ef3cefe18a.pdf","storage":"store","metadata":{"filename":"comic_sample.pdf","size":351987,"mime_type":"application/pdf"}}.
user1851592

Derivata de date lipsesc din coloana înseamnă derivat n-a fost generat, și de aceea URL-ul este zero. Pentru că ai postat setup-ul fara create_on_promote: true setarea, și nu te-ai show-crearea de instrumente financiare derivate în mod explicit, am presupus că pur și simplu nu a fost numit.
janko-m

Multumesc din nou, bolnav, avea o privire la setările din nou. Întrebare: cum este miniatura obtinerea generat dacă Attacher.instrumentele derivate nu este numit?
user1851592
0

În cele din urmă a dat seama. Am rezolvat problema prin adăugarea următoarelor pentru _form.html.erb:

<%= form.hidden_field :image, value: @photo.cached_image_data %>
2021-12-08 23:46:19

În alte limbi

Această pagină este în alte limbi

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................