2011-03-24 43 views
0

我刚刚开始使用Paperclip,并且遇到了渲染图像的问题。经过一番争吵后,照片保存在正确的目录中,但存在路由/呈现错误:Rails 3&回形针 - 无法渲染图像

ActionController :: RoutingError(No route matches“/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也相当陌生,所以苦苦挣扎...

回答

0

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

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

这将显示图像DEFAULT_URL什么不附上图片产品设定。

+0

是的,图像是明确保存,并与正确的路径。实际上,我已经尝试设置默认图像,但它仍然显示图像名称,因为默认图像仅在没有图像附加到该对象时才会显示。 – GroundskeeperWillie 2011-03-24 20:39:04

0

没关系,我修好了。我在我的表单中留下了一个字段,当我无法保存文件并尝试手动覆盖它以使其起作用时,它会命名photo_file_name(,正面为手掌)。几个小时的睡眠有多少清晰度是惊人的。