私はHeroku、Paperclip、S3を使って非常に簡単なことをしようとしています。ヘロクのS3の添付ファイルを移動
は、ここで私は一緒に入れカスタムrakeタスクです:だから
task :migrate => :environment do
@companies = Company.where("attachment_file_name IS NOT NULL")
@companies.each do |c|
if c.attachments.where("attachment_file_name = ?", c.attachment_file_name).blank?
# i.e. if there are no instances of Attachment that match c.attachment
a = Attachment.new(:company_id => c.id, :name => "Default")
a.attachment = c.attachment
a.save
end
end
end
、私は新しい添付モデルの新しいインスタンスにCompany.attachmentを移動しようとしています。私のローカル開発サーバー上で、それは美しく動作します。
一度Herokuにプッシュすると、次のエラーが表示されます。a.attachment = c.attachment
。
The specified key does not exist.
私はHerokuのコンソールで添付ファイルを持っている会社のために手動操作を試してみて、私が手:
TypeError: can't convert nil into String
/app/.bundle/gems/ruby/1.8/gems/paperclip-2.3.6/lib/paperclip/storage/s3.rb:131:in `extname'
/app/.bundle/gems/ruby/1.8/gems/paperclip-2.3.6/lib/paperclip/storage/s3.rb:131:in `to_file'
/app/.bundle/gems/ruby/1.8/gems/paperclip-2.3.6/lib/paperclip/attachment.rb:81:in `assign'
/app/vendor/plugins/paperclip/lib/paperclip.rb:245:in `attachment='
あなたはここで何が起こっているか知っていますか?
私はちょうどc.attachment = c.attachment
を試しました。同じエラー!!!
暗いところで撮影しましたが、 'readattribute'を使って' c.attachment'属性を読み込もうとしましたか? 'a.attachment = c.read_attribute(:attachment)'のように?私はCarrierWaveを使用しなければならなかったので、画像属性を取得する必要がありました。なぜなら、彼らは舞台裏で奇妙なことをするので、PaperClipと同じ方法かもしれません。 – iwasrobbed
@iWasRobbed - 私はHerokuコンソールで試しましたが、 'nil'値です。 – sscirrus
あなたはこれに対する解決策を見つけましたか? – Smickie