2013-02-12 1 views
0

Я могу загружать файлы изображений в виде вложений с помощью Attachment_fu, но когда я пытаюсь отредактировать/изменить изображения, которые уже были загружены, это не сработает. В моем контроллере у меня есть это:Ошибка обновления файла (изображение) с помощью Attachment_fu

 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 определяется следующим образом:

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 

мнение имеет file_field_tag ​​следующим образом:

 <%= file_field_tag :showcase_category_image_file%> 

и моя SponsorAccount модель говорит:

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

Почти такой же код отлично работает в 'create', но здесь, в 'update', где уже есть значение, этот код не работает.

Я получаю ниже сбщ ошибки: Завершено 500 Внутренняя ошибка сервера в 1089ms ActionView :: Template :: Ошибка (неопределенный метод `public_filename» для ноль: NilClass): Очевидно, что эта ошибка находится в действии индекса где он пытается перечислить все записи и их приложения. Поскольку это вложение пусто после обновления, эта ошибка возникает в части redirect_to.

Я использую REE1.8.7 и рельсы 3.2.9

Пожалуйста, помогите!

ответ

0

Эта проблема была решена, когда я добавил: multipart => true в 'View'. Я использую rails 3.2.9, и rails api имеет это, чтобы сказать о «file_field_tag»:

file_field_tag ​​(name, options = {}) Ссылка Создает поле для загрузки файла. Если вы используете загрузку файлов, вам также необходимо установить параметр multipart для тега формы:

Смежные вопросы