7

私は、Rails 2.3.5からRails 3にアップグレードされているRailsアプリケーションを持っています。これは、ファイルのアップロードにattachment_fuを使用しています。 DBを変更せずにこの変換を実行しようとしていますので、今回はペーパークリップまたは搬送波に変更しないでください。誰もattachment_fuをレール3で動作させることができましたか?

attachment_fuをRails 3とRuby 1.9.2で使用することに成功した人はいますか?私たちは、rails 3とruby 1.9.2では大丈夫だと主張しているが、ファイルアップロードを含むどのフォームでも 'TypeError(Integerにnilを変換できません)'という最新のattachment_fuを使用しています。 Attachment_fu or Paperclip for Rails3 または TypeError (can't convert nil into Integer):

感謝を:

前の質問にすべての答えは、のようにただペーパークリップやcarrierwaveに切り替える "ように見えます!

+0

を、あなたは完全なスタックトレースを投稿することができますか?ギストまたはペストリーの可能性があります。 –

+0

スタックトレースは要点です: https://gist.github.com/1038499 TypeErrorに関する他の記事のトレースによく似ています。 –

+0

これを理解できましたか? – deb

答えて

7

私は、次の変更を加えて、それは私も

def make_tmpname(basename, n) 
    ext = nil 
    n ||= 0 
    sprintf("%s%d-%d%s", basename.to_s.gsub(/\.\w+$/) { |s| ext = s; '' }, $$, n, ext) 
end 
init.rb filename.strip.tap do |name|

returning filename.strip do |name|を変更

attachment_fu.rb

def temp_path 
    p = temp_paths.first 
    if p.is_a?(ActionDispatch::Http::UploadedFile) # Rails 3.0.3 compatability fix 
    p.tempfile.path 
    else 
    p.respond_to?(:path) ? p.path : p.to_s 
    end 
end 

を働きました私はこれでgithubの上でフォークを作っ0

はRailsの3.2をサポートしています私のgemifiedバージョン試してみてください https://github.com/debprado/attachment_fu

+2

+1、私のために働いた..ありがとうたくさん.. –

+0

ありがとう!!私は優先順位がレール3のポートに戻ることができるときにそれを使用することができます。 –

6

attachment_fuパッチ init.rb attachment_fu /中Tempfile.make_tmpname、それは1.9.2で動作しません:はsprintf( "%d個"、nilは)失敗し、この式の1.8.7で結果「0」である。

修正がから init.rb に行を挿入することです:あなたはここでの議論の一部https://github.com/technoweenie/attachment_fu/issues/25

乾杯を見つけることができます

n ||= 0 
sprintf('%s%d-%d%s', File::basename(basename, ext), $$, n, ext) 

sprintf('%s%d-%d%s', File::basename(basename, ext), $$, n, ext) 

+0

ありがとう!私はそれを試してみましょう! –

+0

私は同じ問題を抱えていますが、これを試してもまだ動作していません。 – deb

+0

他の優先順位のために応答を得てから試してみる機会がありませんでした。 carrierwaveに切り替えることも検討していますが、ここに記載されているattachment_fu命名規則を使用してください:http://ruby.simapse.com/2011/03/migrate-attachmentfu-to-carrierwavehtml –

3
+0

私のプロジェクトでは、上記のようにcarrierwaveに切り替えてattachment_fu命名規則を使用しました。しかし、宝石入りのバージョンがあることを知っても、まだattachment_fuを使っている人にとっては役に立ちます。私たちが最終的に搬送波に切り替える理由は十分ありましたが、それは苦痛ではありませんでした。ポインタをありがとう - あなたはこの宝石を使用して終了して戻ってくると答えを+1! –

+0

私はこれを使って、ほとんどの場合完璧に動作します。今のところ私はそれをフォークしているかもしれないと思いますが、すでに私自身のハッキングされたものを使っています。 – thekingoftruth

関連する問題