fixture_file_upload
搬送波を使用して実装されているフィールドの工場で使用しています。だから、私は次のものを持っています:
モデル:
class Job < ActiveRecord::base
mount_uploader :translated_xliff, XliffUploader
end
工場:
FactoryGirl.define do
factory :job do
translated_xliff { fixture_file_upload(
Rails.root.join(*%w[spec fixtures text.xliff])) }
end
end
これで問題なく動作しましたが、今はジョブ コントローラーにアクションを追加して、ユーザーがこのファイルをダウンロードできるようにしています。このために、次のアクションがあります。
class JobsController < ApplicationController
def xliff
job = Job.find(params[:id])
send_file(job.translated_xliff.path, disposition: 'attachment')
end
end
send_file
しかし、これは次の行で例外を発生させます。
Exception: no implicit conversion of nil into String
を使用して、とのbyebug
両方がであることがわかったので、工場の女の子がファイルの追加に失敗していると思います。path
file
nil
Rails 3.2 と Ruby 2.0 を使用しています。私は何を間違っていますか?path メソッドをモックするか、別の方法でファイルをアップロードする必要がありますか?