Question

I am able to upload image files as attachments using Attachment_fu but when I try to edit/ modify images which were already uploaded, it does not work. In my Controller I have this:

     def update
          @sponsor_account = SponsorAccount.find( params[:id] )
          if params[:showcase_category_image_file] &&         
           !params[:showcase_category_image_file].blank?
            @sponsor_account.showcase_category_image = 
            ShowcaseCategoryImage.new(:uploaded_data =>
            params[:showcase_category_image_file])
       ***This logs - Now the file name is: *** 
            Rails.logger.info("Now the file name is: #
            {@sponsor_account.showcase_category_image.filename}") 
          end
      @sponsor_account.update_attributes( params[:sponsor_account] )
    if @sponsor_account.save
         flash[:notice] = "Showcase category #{@sponsor_account.name} was updated!"
    else
         flash[:errors] = @sponsor_account.errors
    end
         redirect_to sponsor_accounts_path
    end

ShowcaseCategoryImage is defined as follows:

    has_attachment :content_type => :image,
             :storage => :file_system,
             :max_size => 5.megabytes,
             :thumbnails => { :large => [350, 100], :medium => [200, 90], :thumb => 
              [35,35], :preview => [60,60] }

    validates_as_attachment

The view has a file_field_tag as follows:

     <%= file_field_tag :showcase_category_image_file%>

and my SponsorAccount model says:

         has_one  :showcase_category_image, :as => :owner, :dependent => :destroy
         validates_presence_of :showcase_category_image, :on => :create

Almost similar code works perfectly ok in 'create' but here in 'update' action where there is already a value, this code is not working.

I am getting the below error msgs: Completed 500 Internal Server Error in 1089ms ActionView::Template::Error (undefined method `public_filename' for nil:NilClass): Obviously this error is in the index action where it tries to list all records and their attachments. Since this attachment is empty after the update, this error is thrown in the redirect_to part.

I am using REE1.8.7 and rails 3.2.9

Please help!

Was it helpful?

Solution

This issue was solved when I added :multipart => true in the 'View'. I am using rails 3.2.9 and the rails api has this to say about the 'file_field_tag':

file_field_tag(name, options = {}) Link Creates a file upload field. If you are using file uploads then you will also need to set the multipart option for the form tag:

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top