2013-05-04 6 views
8

ファイルをアップロードしたら、モデルを保存する前にそのファイルを開くことができますか?一時ファイルをRailsモデルに保存する前に開きます

私は/ publicフォルダにファイルを保存するためにPaperclipを使用しています。十分

+2

Carrierwaveは、クリップクリップもできると信じています。 – MikDiet

+0

@MikDiet私は実際にCarrierWaveを使用して終了しました。それと、より良い経験を持っています。 –

答えて

13

はそれを見つけました.urlは私のために働かなかった、pathが働いた。

file = open(uploaded.queued_for_write[:original].path) 

でした。

+1

ホットドッグ!私はしばらく時間を節約しました。モデルでafter_post_processコールバックを使用していましたが、コールバックでファイルを読み込もうとしたときにNO FILE FOUNDが発生しました。 –

+0

あなたはこの問題を解決するために何をしましたか? – drmwndr

5

閉じるペーパークリップの宝石の最新バージョンの.pathの代わり.urlを使用し、

ecoologicからの応答に基づいて、しかし:

def model_method 
    f = open(self.upload.queued_for_write[:original].url) 
end 

アップデート:

class Book < ActiveRecord::Base 
    before_save :open_it 
    has_attached_file :upload 

    def open_it 
    a_file = open(upload.url) # this doesn't work before save ? 
    # ... 
    end 
end 
関連する問題