ROR + ActiveAdmin + Carrierwave,上传多张图片后进行编辑

4

我有一个运行ActiveAdmin和使用CarrierWave上传图片的ROR应用程序。我有一个模型:Product,可以允许多个ProductImages。当我添加新产品并选择多个图像上传时,一切似乎都很好。但是,一旦我想要编辑该产品,图像似乎并没有实际上传,并且我收到以下错误:

undefined method `image_changed?' 

我的假设是最初的上传没有进行太多操作,因此在编辑时结果为空。

这是管理员表单的片段:

ActiveAdmin.register Product do
  form(:html => {:multipart => true}) do |f|
    f.inputs "Details" do
        f.input :name
        f.input :descr, :label => "Description"
        f.input :brand, :as => :select, :collection => Brand.all, :member_label => :name, :label => "Brand"

      # tags
      f.autocomplete_field :tag_list, '/products/autocomplete_tag_name', :"data-delimiter" => ', '
      f.input :tag_list, :hint => "Comma delimited tags"
    end

    f.has_many :product_images do |pi|
      pi.inputs "Product Images" do
        if !pi.object.nil?
          pi.input :_destroy, :as => :boolean, :label => 'Destroy?'
        end
        pi.input :image_name
        pi.input :image
      end
    end
    f.buttons
  end
end

编辑

我还知道一件事情,图片在创建帖子时会被上传,但是编辑时会出现问题。


1
我目前有同样的问题 - 你找到任何解决方案了吗? :/ - lukaszkups
同样的问题...添加后无法删除...有什么运气吗? - Danpe
2个回答

0

我最近遇到了这个问题。 请按照以下方式更新您的表单字段。您必须将输入字段设置为文件。

pi.input :image, :as => :file

0

我之前也遇到了同样的问题(但是是在使用Paperclip时)。解决方案(不太显然)是:如果用户在编辑表单中没有提供密码以确认更新,则图像不会被更新。

因此,如果您还没有尝试过这个方法,可以考虑让用户在编辑产品时输入密码,看看是否能够正确更新图像。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接