在Active Admin中的一列中显示Paperclip图片

4

我可以在Active Admin中的一列中显示图像文件名,但似乎无法显示实际的图像。

我有一个关系,其中

Member
has_many :member_images

MemberImage
belongs_to :member

我可以成功上传图片,所有关联都已经就位。

因此,为了显示文件名,我会这样做:

column "Filename" do |f|
  f.member_images.map(&:photo_file_name).join("<br />").html_safe
end

我尝试过这样做来显示实际图像

column "Images" do |m|
  m.member_images do |img|
    image_tag(img.photo.url(:thumb))
  end
end

但是我在视图中遇到了这个错误。
<ActiveRecord::Associations::CollectionProxy::ActiveRecord_Associations_CollectionProxy_MemberImage:0x007f9634a3f760>

请问有人能告诉我我做错了什么吗?

谢谢!

编辑

我添加了一个.each,这样我就可以遍历每个图像了,但现在我会看到以下内容:

[#<MemberImage id: 1, member_id: 1, created_at: "2014-02-18 20:28:33", updated_at: "2014-02-18 20:28:33", photo_file_name: "associations.jpg", photo_content_type: "image/jpeg", photo_file_size: 140780, photo_updated_at: "2014-02-18 20:28:33">]
3个回答

5
尝试迭代您的图像:
column "Images" do |m|
  m.member_images.each do |img|
    image_tag(img.photo.url(:thumb))
  end
end

谢谢你,你是正确的,尽管我的输出现在是[#<MemberImage id: 1, member_id: 1, created_at: "2014-02-18 20:28:33", updated_at: "2014-02-18 20:28:33", photo_file_name: "associations.jpg", photo_content_type: "image/jpeg", photo_file_size: 140780, photo_updated_at: "2014-02-18 20:28:33">],而不是图片本身。 - Richlewis
@Richlewis 尝试将 each 改为 map - Roman Kiselenko
好的,我已经尝试过了,但现在我得到了["<img alt="Thumb" src="link_to_bucket/images/member_images/2/thumb.jpg?1392799208" />"]。 - Richlewis
我从未使用过 paperclip,但我看到正确的 HTML 标签,尝试打开 src 链接中的图像?图像可用于 link_to_bucket/images/member_images/2/thumb.jpg - Roman Kiselenko
是的,这个图片是可用的。我刚在另一个帖子中找到了答案,我也会在这里发布它,尽管我不知道为什么这个解决方案有效 :-) - Richlewis
显示剩余2条评论

2

通过向您的image_tag添加span或其他块来修复它

column "Images" do |m|
  m.member_images.each do |img|
    span do
      image_tag(img.photo.url(:thumb))
    end
  end
end

0

在查看了一些类似问题的其他帖子后,我可以像这样在我的列中显示图像

column "Images" do |m|
  ul do 
    m.member_images.each do |img|
      li do
        image_tag(img.photo.url(:thumb))
      end
    end
  end
end

虽然我不太确定为什么这个有效


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