[Ruby] ファイルアップロードなら「CarrierWave」
Ruby でファイルアップロードなら「CarrierWave」というGemが便利みたいです。
Rackに対応しているため、Rails、SinatraなどRackベースのRubyアプリケーションで動作し、ActiveRecord、DataMapper、 Mongoidなど多くのORMをサポートしています。
・jnicklas/carrierwave · GitHub
・ASCIIcasts – “Episode 253 – CarrierWaveでファイルのアップロード”
・Railsでcarrierwaveを使って画像ファイルのアップロード
.gitignore
# CarrierWave /public/uploads |
テストデータを作る場合、rails c で画像をモデルに割り当てて、保存すればOKです。
photo = Photo.new photo.image = File.open('app/assets/images/dummy.jpg') |
RSpec でテスト
include ActionDispatch::TestProcess FactoryGirl.define do factory :photo do ignore do image_file "test1.jpg" end name "TestPhoto" image { fixture_file_upload(Rails.root.join('spec', 'support', 'test_images', "#{image_file}"), 'image/jpg') } end end |
・Action*3 – rspecでCarrierWaveのアップロードファイルをclean
・How to: Cleanup after your Rspec tests · jnicklas/carrierwave Wiki