无法在activeadmin中上传文件

时间:2015-01-04 11:27:30

标签: ruby-on-rails-4 file-upload activeadmin 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

模型/ event.rb:

class Event < ActiveRecord::Base
  ...
  mount_uploader :picture, ImageUploader
end

我可以在应用程序(不是管理部分)上传带有表单的图像,它可以正常工作。我在ActiveAdmin的picture字段中看到了图片路径。

但是我无法直接在ActiveAdmin中更改图片字段。我尝试使用图像创建新事件,或者更改现有事件。如果图像存在,它保持不变。如果之前没有图像,则不添加任何图像。简而言之,我可以在ActiveAdmin中查看picture字段,但我无法更改它。这种情况仅适用于picture字段(我可以更改其他字段)

注意:我提交表单时没有上传(我没有看到在chrome左下角上传xx%)。我也试过其他的浏览器,同样的行为。我在rails服务器控制台中没有出错。

系统管理员/ 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字段?

2 个答案:

答案 0 :(得分:2)

问题与此问题相同:File upload with Activeadmin Rails using paperclip

admin / events.rb 更改为此内容使上传工作:

ActiveAdmin.register Event do
  permit_params :user_id, :category_id, :name, :date, :description, :text, :picture

  form :html => { :enctype => "multipart/form-data" } do |f| # <--- changed
    f.inputs "Event details" do
      ...
    end
    f.actions
  end
end

答案 1 :(得分:0)

问题#3577在GitHub上已经公开,今天早些时候公关合并了。