Shrineの宝石を使用して私のマシンに画像をアップロードするform_forフォームがあります。私はhtmlファイルに新しいインスタンスを作成しています。私はコントローラのStructureImageの新しいインスタンスを作成しようとするとエラーが発生するため、新しいインスタンスのcached_image_dataを設定しようとしています。私はそれを書く方法がわかりません。 shrine.rbファイルにプラグインを含め、ImageUploaderクラスも含めました。Ruby on Rails Shrine Gemは、フォームの新しいインスタンスに値を追加します。
require "image_processing/mini_magick"
class ImageUploader < Shrine
include ImageProcessing::MiniMagick
plugin :cached_attachment_data
<%= form_for StructureImage.new(audit_structure_id: audit_structure.id),
url: audit_photos_path(current_audit),
html: { class: 'js-autosave-form camera gphoto', multipart: true } do |f| %>
<%=f.hidden_field :image, value: self.cached_image_data %>
<p style="display: block;">
<%= f.submit "Upload images",
class: 'btn btn-primary', data: { disable_with: 'Uploading...' } %>
</p>
<%- end %>
私はそれが新しいStructureImageを作成されていない理由のために、エラーメッセージを確認したとき、私は[「画像データの画像データが欠落している」]取得しています。フォームのイメージの値を正しく設定しているかどうかはわかりません。
イムブラウザ
未定義のメソッド `cached_image_dataでこのエラーを取得 '#<のために#:0x0055e31019d770>
require 'shrine'
require 'shrine/storage/file_system'
が必要とマイshrine.rbファイル' 神社/ストレージ/ google_drive_storage '
Shrine.storages = {
cache: Shrine::Storage::FileSystem.new("public", prefix:
"uploads/cache"), # temporary
store: Shrine::Storage::FileSystem.new("public", prefix:
"uploads/store"), # permanent
}
Shrine.plugin :activerecord
Shrine.plugin :cached_attachment_data
今すぐI tri self.cached_image_dataを使用して編集しましたが、そのエラーが発生しています。私は動作しなかったstructure_image.cached_iamge_dataを試しました。私は、コントローラーにパラメータcached_image_dataを割り当てようとしました。それはどちらもうまくいかなかった。
助けてください。
クイックスタートセクション(https://github.com/janko-m/shrine#quick-start)に従っている場合は、問題に遭遇しないことを願っています。あなたはまだ問題に直面している場合、私たちはあなたが立ち往生した時点で知っている。 –