Active record duplication and save failure

I have this error: Errno::ENOENT in PicturethingsController#update_profile.

I’m trying to duplicate the standardpicture record and save that to @character.profilepicture. I also can’t get @character.profilepicture to save to the database (I know from checking after entering the rails console).

Here is the offending method:

picturethings_controller.rb:

def update_profile
  @character = Character.find_by(callsign: params[:callsign])
  standardpicture = Picturething.find_by(id: params[:picid])
  @character.build_profilepicture
  @character.profilepicture.save!
  @character.profilepicture = standardpicture.dup
  @character.profilepicture.save!
  @character.profilepicture.picture.recreate_versions!
  @character.profilepicture.picture = @character.profilepicture.picture.profile
  respond_to do |format|
    format.html do
      redirect_to @character.sociable
    end
    format.js
  end
end

``

character.rb:

has_many :standardpictures, class_name: "Picturething",
                            inverse_of: :character,
                            foreign_key: "character_standard_id",
                            dependent: :destroy
has_one  :profilepicture,   class_name: "Picturething",
                            inverse_of: :character,
                            foreign_key: "character_profile_id",
                            dependent: :destroy

``

picturething.rb:

mount_uploader :picture, CharacterpicUploader

``

I have this error: `Errno::ENOENT in
PicturethingsController#update_profile`.

Is that all it says? Look in the log file to see if there is more.
It should tell you which line it failed on and I would have expected
some indication of the file it was looking for.

If not then simplify the method till you work out exactly which
statement is causing the problem.

As a thought, does the picture have an attached file or something like
that? Is the dup trying to do something with the file?

Colin