【发布时间】:2017-05-02 07:40:46
【问题描述】:
我通常总是使用带有 Rails
使用的版本:
Ruby 2.4.1p111
Rails 5.02
Carrierwave 1.1.0
ActiveAdmin from Github Master Repo
像往常一样,我生成了上传器并将它们安装到我的模型中。
uploaders/StoreImageUploader.rb
class StoreImageUploader < CarrierWave::Uploader::Base
# Include RMagick or MiniMagick support:
# include CarrierWave::RMagick
include CarrierWave::MiniMagick
# Choose what kind of storage to use for this uploader:
storage :file
# storage :fog
# Override the directory where uploaded files will be stored.
# This is a sensible default for uploaders that are meant to be mounted:
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
# Create different versions of your uploaded files:
version :thumb do
process resize_to_fit: [250, 250]
end
end
models/store.rb
class Store < ApplicationRecord
mount_uploaders :image, StoreImageUploader
serialize :image, JSON # If you use SQLite, add this line.
belongs_to :organization
has_many :orders
end
通常 ActiveAdmin 会自动检测到 mounted uploaders 并将 image:string 字段设置为 :file,但这次不会。
我手动调整了活动的管理文件。
admin/store.rb
ActiveAdmin.register Store do
permit_params :name , :image
form(:html => { :multipart => true }) do |f|
f.inputs "Store" do
f.input :name
f.input :image, :as => :file
end
f.button "Create"
end
end
【问题讨论】:
-
这是一个拼写错误
mount_uploaders:)
标签: ruby-on-rails ruby activeadmin carrierwave