I spent some time yesterday with the excellent CarrierWave gem.
This gem provides a simple and extremely flexible way to upload files from Ruby applications. It works well with Rack based web applications, such as Ruby on Rails.
Everything was going great until I wired up RMagick to enforce some constraints on the image size. Once RMagick was running, anytime I uploaded an image Ruby would segfault and kill the webrick process.
I thought there might be an issue with my ImageMagick install, so I opened up the rails console and manually invoked the uploader and it worked as expected. I little searching around lead me to this post on StackOverflow.
Assuming you are using Homebrew, you can resolve this issue with:
brew remove imagemagick rm -rf `brew --cache imagemagick` brew install -f imagemagick --disable-openmp
A couple interesting tips and suggestions on CarrierWave:
- Check out the RailsCast on CarrierWave screencast. It is a great quick overview and provides enough info to get you up and running in a couple of minutes.
- To remove an attachment, just include a checkbox with :remove_attribute_name in your form.
- Don’t forget to add things like :remove_attribute_name and :attribute_name_cache to your attr_accessible. I lost about 30 minutes debugging because I forgot to make this change.