我正在使用带有载波的主动管理员。
我在使用主动管理员上传图片时遇到问题。
我的public/img
文件夹中已有一个名为banner.png的图像。
现在我想通过管理面板用另一个图像覆盖该图像。
当我上传图片时,它会显示如下参数:
Parameters: {"utf8"=>"✓", "authenticity_token"=>"iHI02QCklnooY2WvKOAI/OUPi6phmvVsYnXuRzvXg2Q=", "home_banner"=>{"home_banner_image"=>{"image"=>#<ActionDispatch::Http::UploadedFile:0xd8f728c @original_filename="Penguins.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"home_banner[home_banner_image][image]\"; filename=\"Penguins.jpg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#<File:/tmp/RackMultipart20140612-18313-18qw3aj>>}}, "commit"=>"Update Home banner", "id"=>"539981982131fc9c0e000002"}
但它不会在数据库中保存图像。
这是我的模型和上传者
模型: -
class Banner
include Mongoid::Document
include Mongoid::Timestamps::Created
include Rails.application.routes.url_helpers
field :banner_image, type: String
mount_uploader :banner_image, BannerUploader
end
者: -
require 'open-uri'
require "digest/md5"
require 'carrierwave/processing/mini_magick'
class BannerUploader < CarrierWave::Uploader::Base
storage :file
def store_dir
# "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
"/public/img"
end
def extension_white_list
%w(jpg jpeg gif png)
end
# Override the filename of the uploaded files:
# Avoid using model.id or version_name here, see uploader/store.rb for details.
def filename
"banner.png" if original_filename
end
端
我在admin文件夹中的activeadmin是: -
ActiveAdmin.register Banner do
index do
column :banner_image
default_actions
end
form(:html => { :multipart => true }) do |f|
f.inputs "Banner Image" do
f.semantic_fields_for :banner_image do |fi|
fi.input :image, :as => :file
end
end
f.buttons
end
end
我正在使用mongoDb,我的要求就像我现在已经在public / img文件夹中有一个图像来通过管理员更新它,以便它自动反映在前端,而不会对视图代码进行任何更改。
请加入这个问题。 非常感谢。
答案 0 :(得分:0)
我无法保证这一点,这只是出于我的想法而没有经过测试:
对于较早的ActiveAdmin版本的0.6和1.0之前的~Okt。/ Nov。 2014
f.input :header_image, :as => :file, :hint => f.template.image_tag(f.object.image.url(:thumb))
在~Ott./Nov之后的ActiveAdmin 1.0。 2014
f.input :header_image, :as => :file, :hint => image_tag(object.image.url(:thumb))