2011-03-24 85 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(,正面爲手掌)。幾個小時的睡眠有多少清晰度是驚人的。