【问题标题】:Cannot upload a file in activeadmin无法在 activeadmin 中上传文件
【发布时间】: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


    【解决方案1】:

    问题与本题相同: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
    

    【讨论】:

      【解决方案2】:

      Issue #3577 在 GitHub 上对此开放,今天早些时候合并了一个 PR。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-09-29
        • 2014-09-09
        • 2016-02-17
        • 2017-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多