【发布时间】:2017-12-14 09:45:49
【问题描述】:
我有一个 form_for 表单,它使用 Shrine gem 将图像上传到我的机器上。我正在 html 文件中创建新实例。我正在尝试为新实例设置 cached_image_data,因为当我尝试在控制器中创建 StructureImage 的新实例时出现错误。但我不知道怎么写。我已将插件包含在神殿.rb 文件以及 ImageUploader 类中。
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 时,我收到 ["Image data Image data missing"]。我不确定我是否在表单中正确设置了图像的值。
我在浏览器中收到此错误
# 的未定义方法“cached_image_data”>
我的神社.rb 文件
require 'shrine'
require 'shrine/storage/file_system'
需要“神社/存储/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
现在我尝试使用 self.cached_image_data 但我得到了那个错误。我试过 structure_image.cached_iamge_data 没用。我试图在控制器中分配参数 cached_image_data 。那也没用。
请帮忙。
【问题讨论】:
-
如果您遵循快速入门部分 (github.com/janko-m/shrine#quick-start),希望您不会遇到任何问题。如果您仍然遇到问题,请告诉我们您遇到的问题。
标签: ruby-on-rails shrine