The most challenging part of this year was getting the image uploader gem CarrierWave to work. I did these steps below:

  1. Installing the gem
  2. Loading the uploader in the model
  3. Adding a column using rails g migration AddImageToProduct
  4. Run rake db:migrate
  5. Adding the new column to the "product" controller

... yet the upload still returned error!

The error was that image was "nil", which meant that the image didn't get uploaded, or that in the product image wasn't attached. So I checked the schema document and realized that even though I ran db:migrate, the image was never added to the schema - not sure why though.

First, I tried to fix this with rake db:reset, which didn't work because it takes the schema document rather than updating it. Then I used rake db:drop, rake db:create, and rake db:migrate to recreate the database, which finally worked.

I wrote a more detailed version of the above issue here.