Rails 3&回形针 - 不渲染图像

时间:2011-03-24 10:06:53

标签: ruby-on-rails-3 paperclip

我今天刚刚开始使用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的新手,所以有点挣扎......

2 个答案:

答案 0 :(得分:0)

您确定具有该ID的产品是否附有图片?我认为你的一些产品没有附加图像,但你还在寻找它们。也许尝试设置default_url。像这样:

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

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

答案 1 :(得分:0)

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