【问题标题】:Rails 3 & paperclip - not rendering imagesRails 3 和回形针 - 不渲染图像
【发布时间】:2011-03-24 10:06:53
【问题描述】:

我今天刚开始使用 Paperclip,但在渲染图像时遇到了问题。经过一番争论,照片保存在正确的目录中,但出现路由/渲染错误:

ActionController::RoutingError(没有路由匹配“/public/system/products/19/original/puppies-3.jpg”)

但是,图像肯定保存在正确的目录中。这是我的产品模型中的内容:

class Product < ActiveRecord::Base

validates :title, :presence => true
validates :description, :presence => true
validates :category, :presence => true
validates_attachment_presence :photo
validates_attachment_size :photo, :less_than => 5.megabytes

attr_accessible :photo, :photo_file_name, :photo_content_type, :photo_file_size,    :photo_updated_at
attr_accessible :title, :description, :category, :price

has_attached_file :photo, :styles => { :small => "150x150>", :large => "400x400>" },
                :path => ":rails_root/public/system/products/:id/:style/:basename.:extension", 
                :url  => "/system/products/:id/:style/:basename.:extension"
end

这是我的看法:

<%= image_tag @product.photo.url %>

目前它只是返回图像基名而不是图像本身,有什么想法吗?产品可作为 routes.rb 中的资源使用,但我是否需要以某种方式明确地提供照片?我对 Rails 也很陌生,所以有点挣扎......

【问题讨论】:

    标签: ruby-on-rails-3 paperclip


    【解决方案1】:

    您确定带有该 ID 的产品附有图片吗?我认为您的某些产品没有附加图片,但您仍在寻找它们。也许尝试设置一个default_url。像这样的:

    has_attached_file :photo, :default_url => "/images/missing.png"
    

    这将显示在 default_url 中为没有附加图像的产品设置的图像。

    【讨论】:

    • 是的,图像肯定被保存,并且路径正确。我实际上已经尝试过设置默认图像,但它仍然显示图像名称,因为默认图像仅在该对象没有附加图像时才会显示。
    【解决方案2】:

    没关系,我已经修好了。我在我的表单中留下了一个字段,该字段从我无法保存要保存的文件并试图手动覆盖它以使其工作时命名 photo_file_name (face-palm)。几个小时的睡眠带来的清晰程度令人惊讶。

    【讨论】:

      猜你喜欢
      • 2013-07-16
      • 1970-01-01
      • 2021-08-29
      • 2014-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-22
      • 2012-07-03
      相关资源
      最近更新 更多