2012-05-30 92 views
0

我已經瀏覽了許多類似的問題,並試圖解決方案沒有成功。我正在使用rails 3和paperclip 3.我已成功安裝ImageMagick,作爲回形針github指導的教程。回形針不保存照片

在我的模型:

has_attached_file :photo, :styles => { :medium => "300x300>", :thumb => "100x100>" }, :default_url => "/profile_photo_store/missing.png" 
attr_accessible :photo 

在我的數據庫中,我已經添加了這些列:

:photo_file_name, :photo_content_type, :photo_file_size, :photo_updated_at 

在我編輯觀點:

<%= form_for(@user, :url => user_path, :html => { :multipart => true }) do |f| %> 
    <div class="field"> 
    <b>Add a Photo</b><br /> 
    <%= f.file_field :photo %> 
    </div><br /> 
<% end %> 

在我的節目鑑於

<%= image_tag @user.photo.url(:medium) %> 

我可以告訴照片被髮送,因爲我看到它通過Firebug。但仍然顯示missing.png。回形針保存文件在哪裏?我究竟做錯了什麼。

+0

添加validates_attachment_presence作爲開始 –

+0

好吧,剛剛嘗試過,並得到一個表單錯誤消息說照片不能爲空。 – petfreshman

+0

日誌顯示紙夾是什麼? – DVG

回答

1

Couldn我解決了這個問題,於是我轉而選擇了carrierwave ...之後,我遇到了類似的問題。使用包管理器重新安裝ImageMagick,而不是從解決它的源代碼構建。顯然,當從源代碼構建時,bin文件保存在/ usr/local/bin中,這是我的rails應用程序無法看到的。

0

在Rails 3.2中,回形針附件存儲在公共文件夾public/system/users/[photo or avatar ...]/...中。你可以檢查他們是否經過並保存。我在代碼中看不到任何明顯的錯誤。您可以使用此遷移,以確保公正:

class AddAttachmentAvatarToUsers < ActiveRecord::Migration 
    def self.up 
    add_column :users, :photo_file_name, :string 
    add_column :users, :photo_content_type, :string 
    add_column :users, :photo_file_size, :integer 
    add_column :users, :photo_updated_at, :datetime 
    end 

    def self.down 
    remove_column :users, :photo_file_name 
    remove_column :users, :photo_content_type 
    remove_column :users, :photo_file_size 
    remove_column :users, :photo_updated_at 
    end 
end 

而且你可以刪除默認的圖片代碼,或編輯它以「/圖片/ ...」,並在您的公共文件夾中創建一個圖像文件夾,原因這是回形針正在尋找文件的地方。看來,回形針仍然是配置的「舊」的方式(所有資產公用文件夾是):在用戶模式

has_attached_file :photo, :styles => { :medium => "200x200>", :thumb => "60x60>" }, 
         :default_url => "/images/default_:style_avatar.png" 

如果你願意,你可以嘗試這樣寫:

<%= form_for(@user) do |f| %> 
... 
+0

沒有變化,我已經使用遷移 – petfreshman

0

請檢查控制器中的強參數是否接受:照片。