2011-03-24 6 views
0

오늘 저는 Paperclip을 사용하기 시작했으며 렌더링 할 이미지를 가져 오는 데 문제가 있습니다. 일부 논쟁 끝에 사진은 올바른 디렉토리에 저장되지만 라우팅/렌더링 오류가 발생합니다.레일 3 및 클립 - 이미지 렌더링 안 함

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에 상당히 익숙해 져서 조금 어려움을 겪고있다. ...

답변

0

그 id의 제품에 이미지가 첨부되어 있습니까? 일부 제품에는 이미지가 첨부되어 있지 않지만 여전히 찾고 있습니다. default_url을 설정하려고 시도했을 수 있습니다. 다음과 같이 입력하십시오 :

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

이미지를 첨부하지 않은 제품의 default_url에 설정된 이미지가 표시됩니다.

+0

예, 이미지가 정확한 경로와 함께 저장되었습니다. 실제로 이미 기본 이미지 설정도 시도했지만 이미지 이름이 표시됩니다. 기본 이미지는 해당 이미지에 첨부 된 이미지가없는 경우에만 표시됩니다. – GroundskeeperWillie

0

괜찮습니다. 해결했습니다. 나는 저장할 파일을 얻을 수 없을 때부터 photo_file_name의 이름을 짓는 필드를 내 양식에 남겨 두었고 수동으로 작업을 덮어 쓰려고했습니다 (face-palm). 얼마나 많은 선명도가 몇 시간의 잠에서 비롯되는지 놀라워합니다.