【发布时间】:2015-01-04 11:27:30
【问题描述】:
我有一个使用carrierwave的基本文件上传:
上传者/image_uploader.rb:
class ImageUploader < CarrierWave::Uploader::Base
include CarrierWave::RMagick
storage :file
def store_dir
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
end
end
models/event.rb:
class Event < ActiveRecord::Base
...
mount_uploader :picture, ImageUploader
end
我可以在应用程序(不是管理部分)中上传带有表单的图像,并且效果很好。我在 ActiveAdmin 的 picture 字段中看到了图像路径。
但我不能直接在 ActiveAdmin 中更改图片字段。我尝试使用图像创建新事件,或更改现有事件。如果图像存在,它保持不变。如果之前没有图像,则不添加图像。简而言之,我可以在 ActiveAdmin 中查看picture 字段,但我无法更改它。这仅适用于picture 字段(我可以更改其他字段)
注意:当我提交表单时没有开始上传(我没有在 chrome 的左下角看到上传 xx%)。我还尝试了其他浏览器,相同的行为。我在 Rails 服务器控制台中没有收到任何错误。
admin/events.rb:
ActiveAdmin.register Event do
permit_params :user_id, :category_id, :name, :date, :description, :text, :picture
# tried adding this, form still works, but image still doesn't work.
form multipart: true do |f|
f.inputs "Event details" do
f.input :category_id
f.input :name
f.input :description
f.input :picture, as: :file
end
f.actions
end
end
为什么我不能在 ActiveAdmin 中更改 picture 字段?
【问题讨论】:
标签: ruby-on-rails-4 file-upload activeadmin carrierwave