使用回形针 Rails 3 上传的 id 显示来自另一个模型的图像

Posted

技术标签:

【中文标题】使用回形针 Rails 3 上传的 id 显示来自另一个模型的图像【英文标题】:Show image from another model using id upload by paperclip Rails 3 【发布时间】:2013-12-14 03:29:17 【问题描述】:

如何在 Pin 模型视图中使用其 ID 访问 Image.photo?

目前我正在这样做,如果我删除 image_tag 或银行图像空间,它会给我随机数。

<td><%= image_tag Image.find_by_id(pin.pic) %></td>

这个给了我未定义的方法 `photo' for nil:NilClass

<td><%= image_tag Image.find_by_id(pin.pic).photo.url(:small) %></td>


class Pin < ActiveRecord::Base
  attr_accessible :board, :pic, :pin_time, :user, :apic, :photo
  belongs_to :auser, :class_name => 'User', :foreign_key => 'user' 
  belongs_to :apic,   :class_name => 'Image',:foreign_key => 'pic'
end


class Image < ActiveRecord::Base
  attr_accessible :description, :uid, :web_url, :photo, :photo_file_name,:photo_content_type, :photo_file_size, :photo_updated_at, :id
  has_attached_file :photo, :styles =>  :small => "150x150>", :medium => "300x300", :large => "600x600"

  belongs_to :user

  validates_attachment_presence :photo
  validates_attachment_size :photo, :less_than => 5.megabytes
  validates_attachment_content_type :photo, :content_type => ['image/jpeg', 'image/png']
end

【问题讨论】:

您是否尝试过使用以下内容登录您的 s3 帐户:addons.mozilla.org/en-US/firefox/addon/amazon-s3-organizers3fox 并检查文件是否存在? 它没有加载到亚马逊。它在本地加载它,是的,文件确实存在。 【参考方案1】:

为什么不简单

pin.apic.photo.url(:small)

或者您正在寻找其他完全不同的东西?

【讨论】:

nil:NilClass 的未定义方法 `photo' 所以 pin.apic 为 Nil,这意味着此 pin 没有图片或您的关联已损坏。如何将图像添加到图钉?您可以在控制台中检查给定 pin 的 pin.apic 存在吗?如果 apic 是可选的,您可能应该使用 (pin.apic.photo.url if pin.apic)

以上是关于使用回形针 Rails 3 上传的 id 显示来自另一个模型的图像的主要内容,如果未能解决你的问题,请参考以下文章

如何使用Paperclip在Rails 4中上传多个图像

在rails中使用回形针进行ajax上传的简单方法?

在 rails 中使用回形针 3.3.1 进行图像裁剪

Rails:回形针和预览?

将图像从 Android(使用 Android 异步 Http 客户端)上传到 rails 服务器(使用回形针)

回形针上传的文件被删除了?