2012-03-07 8 views
1
rake db:populate (works) 
    heroku run rake db:populate (works to some extent) 

私はherokuでデータベースを作成しようとしたときに問題に遭遇しました。ローカルでは、以下のものは完全に機能し、私のウェブサイトには画像が埋め込まれています。Heroku file.openとrakeを使用して搬送波を入力する方法

namespace :db do 
    desc "Fill database with sample data" 
    task populate: :environment do 
    . 
    . 
    @uploader = ImageUploader.new(@movie_project, :image) 
    @uploader.store!(File.open("app/assets/images/photos/picture.jpg")) 
    @movie_project.image = @uploader 

すべてのMovieProjectには、データ(タイトル、ジャンルなど)が正常に埋め込まれます。それは英雄の上に作られていない唯一のイメージです。私は、私は杉スタックを使用

app/assets/images => public/assets/ ? 

多分私はちょうど間違ったディレクトリを使用

、このディレクトリを変更するような、成功せず

File.open 

しようとしたものとは何かを持っていると思われる3.2レール、Carrierwaveとアセットはアップロードされる前にプリコンパイルされます。これは、さまざまなレイアウトでテストするためのテスト用です。 MovieProjectを作成し、画像を割り当てることはHeroku上で動作しますが、上記の方法を使用すると思われません。

//

おかげジョン

答えて

0

は同じ問題に今夜を走り、それを次のように修正:まず

を、あなたは、アップローダまたは初期化子でこのような何かを持っていることを確認してください。

config.cache_dir = "#{Rails.root}/tmp/uploads" 

store!の代わりに、carrierwaveのcache!メソッドを使用してください。私もそれは実際にも、私のコンピュータ上でローカルに動作しない、後でこのことができます

@uploader.cache!(File.open("app/assets/images/photos/picture.jpg")) 
@[email protected] 
@movie_project.save! 

希望が、それは私のために動作しません。キャッシュに変更

+0

ないなら、私に知らせてsave!を呼び出します。私の初期設定:carriewave.rb CarrierWave.configure do | config | config.cache_dir = "#{Rails.root}/tmp/uploads" end –

+0

私がcarriewave.rb初期化子をコメントアウトすると、キャッシュをローカルで使用して動作します。写真は#{Rails.root}/tmp/uploadsを使ってキャッシュされているので、エラーの内容はわかりませんが、movie_projectには割り当てられていません。 –