使用回形针 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 显示来自另一个模型的图像的主要内容,如果未能解决你的问题,请参考以下文章