I had to remove a validation on the :name column because my PictureUploader which uses Carrierwave is mounted on that column
mount_uploader :name, PictureUploader
This causes validation
validates :name, presence: true
to cause rows in pictures to be invalid for blank :name even though the name, just a filename, is in the database for that column
CarrierWave overloads the accessor for the attachment column to respond with the entire uploader model object. This is normal for CarrierWave.
There are other attachment systems (I'm fond of Shrine) that use a different, less-surprising approach. In Shrine, you would have a column called picture_data and an attachment called picture. That way you can keep the difference between db column and virtual object separate.