activeadmin carrierwave图像提示未显示

时间:2014-04-22 09:06:36

标签: ruby-on-rails-4 activeadmin carrierwave

我正在使用带有运营商gem的活跃管理员。我无法在提示中查看图像上传预览 我的图片src总是空的,f.template.image_tag(f.object.image.url)是空的

点击上传按钮后,我可以看到图片相对网址。

我的表单看起来像这样

ActiveAdmin.register Product do

  permit_params :name, :description , :category_id , :image
  form(:html => { :multipart => true }) do |f|
    f.inputs "Product" do
      f.input :category_id , :as => :select , :collection => Category.all
      f.input :name
      f.input :description
      f.input :image, :as => :file, :hint => f.template.image_tag(f.object.image.url) 
    end
    f.actions
  end
end

模型

class Product < ActiveRecord::Base
    belongs_to :category
    mount_uploader :image, ImageUploader
end

串行

class ProductSerializer < ActiveModel::Serializer
  attributes :id, :name, :description , :image
end

我的上传器看起来像这样

class ImageUploader < CarrierWave::Uploader::Base
  storage :file
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
end

生成HTML

<label class="label" for="product_image">Image</label>
<input id="product_image" name="product[image]" type="file">
<p class="inline-hints"><img src=""></p>

1 个答案:

答案 0 :(得分:1)

经过一些修改后,对我来说工作正常:

ActiveAdmin.register Team do

  permit_params :name, :country :image

  index do
    selectable_column
    column :nome
    column :country
    actions
  end

  form do |f|
    f.inputs "Team" do
      f.input :nome
      f.input :country
      f.input :image, :image_preview => true
    end
    f.actions
  end

  show do
    attributes_table do
      row :nome
      row :country
      row :image do
          image_tag(equipe.image.url)
      end
    end 
  end

end

你可以看到我使用三个选项:   - 索引:显示项目列表   - 表格:表格   - 显示:显示项目详细信息

这样您就可以自定义所有页面。