2012-04-12 48 views
1

我用我的Rails 3.0應用程序的回形針爲了向用戶添加一個頭像,並且它不會保存圖像,因爲路徑關閉。繼承人我得到什麼:如何指定:路徑和:URL保存img在Paperclip,Rails 3.0.12

入門GET 「/profilepics/small/missing.png」 爲127.0.0.1於2012-04-11 23點38分29秒-0700

的ActionController :: RoutingError(無路由匹配「/profilepics/small/missing.png」):

我的用戶模型有:

has_attached_file :profilepic, :styles => { :small => "150x150>" } 

我應該把爲:PATH => &:URL =>?

形式如下:

 <% form_for @user, :html => { :multipart => true } do |f| %> 

     <%= f.file_field :profilepic %> 

     <% end %> 

日誌是這樣的:

入門GET 「/system/profilepics/small/missing.png」 爲127.0.0.1在2012-04-12 00:33 :51 -0700

的ActionController :: RoutingError(無路由匹配 「/system/profilepics/small/missing.png」):

渲染/usr/lib/ruby/gems/1.9.1/gems/ ActionPack的-3.0.12/LIB/action_disp ATCH /中間件/模板/救援/救援內routing_error.erb /佈局(1.2ms的)

+0

你可以添加你的表單嗎? – DanS 2012-04-12 07:02:30

+0

你不一定需要指定:路徑或:網址,默認情況下,圖像保存到':rails_root/public/system /:attachment /:id /:style /:filename' – DanS 2012-04-12 07:09:10

+0

我只是不斷得到一個破碎的img ( – Elias7 2012-04-12 07:10:56

回答

3

見我的樣本:

has_attached_file :avatar, :styles => { :thumb => "50x50#", :large => "1000x1000>", :medium => "200x200#" }, 
    :default_url => "/system/avatars/:style/missing.png", 
    :url => "/system/:attachment/:id/:style_:filename", 
    :path => ":rails_root/public/system/:attachment/:id/:style_:filename" 
  • :DEFAULT_URL - 是默認圖像的路徑,用戶在沒有上傳任何化身
  • 「#」 - 這個符號是裁剪圖像

那麼你可以展示你的圖像這樣:

<%=image_tag(@user.avatar.url(:thumb))%> 
<%=image_tag(@user.avatar.url(:medium))%> 
+0

嗯,所以我想我的問題將是爲什麼它顯示我上傳後missing.png? – Elias7 2012-04-12 07:23:00

+0

您的表單不應該是在軌道3.0.12 <%= form_for?這是一個3.0.0更改。 – DanS 2012-04-12 07:24:41

+0

在發佈表單後檢查日誌看看發生了什麼 – DanS 2012-04-12 07:25:01

0

如果您只想顯示圖像,則無需給出url和路徑選項。

使用此行展示頁面,它會顯示圖像...

 <%=image_tag(@user.profilepic.url(:small))%> 

,享受..............

1

現在的作品!

對於患有同樣的問題掙扎,這裏有一些重要的事情要始終確保檢查:

  1. 在您的形式,始終指定{:多=>真}否則,形式不會接受文件附件。

    <%= form_for @user, :html => **{ :multipart => true }** do |f| %> 
    
  2. 在您的用戶。RB(或任何模型,你想將附件添加到),使attr_accessible:照片(或任何你命名你的附件)

  3. 安裝新的寶石後,請務必重新啓動服務器。

:)謝謝你們!!!!