File_column validation problems

Hello all,

Am having some serious problems with file_column plugin. I have a model,
CaseStudy which has_one CaseStudyImage. I’m trying to validate the type
of file uploaded plus to ensure an image is uploaded, so in my
CaseStudyImage model, I have the following -

class CaseStudyImage < Asset

belongs_to :case_study
validates_presence_of :filename, :message => ‘can’t be blank’
validates_file_format_of :filename, :in => [“gif”, “png”, “jpg”],
:message => ‘must be an image file’

file_column :filename, :magick => {
:versions => { “thumb” => “100x100”, “medium” => “220x280” }
}

end

This works fine for creating a new case study and uploading a new image,
however when I wish to edit the case study, I’m having some real
problems.

My two methods for edit and update look like -

def edit
@case_study = CaseStudy.find(params[:id])
@case_study_image = @case_study.case_study_image
end

def update
@case_study = CaseStudy.find(params[:id])
@image = CaseStudyImage.new(params[:case_study_image])

unless @image.filename.nil?
  @case_study_image = @case_study.case_study_image = @image
else
  @case_study_image = @case_study.case_study_image
end

@case_study_image.title = @case_study.title
@case_study.updated_by = current_user

if @case_study.update_attributes(params[:case_study])
  flash[:notice] = 'CaseStudy was successfully updated.'
  redirect_to :action => 'list'
else
  render :action => 'edit'
end

end

On submitting a new file to replace the existing uploaded file, it
completely ignores the validates_presence_of validation, however it
doesn’t store the invalid file either. Checking the server trace, I can
see that the file is being deleted if it’s an invalid file.

Does anyone have any idea why this might be happening? I’ve been at this
for almost a day trying to solve the problem with no success and so any
help would be really really appreciated before I tear out the little
remaining hair I have!

Many thanks,

Alastair

No suggestions then?

Bringing this to the top again as I’ve still not been able to resolve my
problem! I’m really becoming unstuck with this and have had no luck
solving this issue. Can anyone suggest anything?

Cheers,

Alastair


Am having some serious problems with file_column plugin. I have a model,
CaseStudy which has_one CaseStudyImage. I’m trying to validate the type
of file uploaded plus to ensure an image is uploaded, so in my
CaseStudyImage model, I have the following -

class CaseStudyImage < Asset

belongs_to :case_study
validates_presence_of :filename, :message => ‘can’t be blank’
validates_file_format_of :filename, :in => [“gif”, “png”, “jpg”],
:message => ‘must be an image file’

file_column :filename, :magick => {
:versions => { “thumb” => “100x100”, “medium” => “220x280” }
}

end

This works fine for creating a new case study and uploading a new image,
however when I wish to edit the case study, I’m having some real
problems.

My two methods for edit and update look like -

def edit
@case_study = CaseStudy.find(params[:id])
@case_study_image = @case_study.case_study_image
end

def update
@case_study = CaseStudy.find(params[:id])
@image = CaseStudyImage.new(params[:case_study_image])

unless @image.filename.nil?
  @case_study_image = @case_study.case_study_image = @image
else
  @case_study_image = @case_study.case_study_image
end

@case_study_image.title = @case_study.title
@case_study.updated_by = current_user

if @case_study.update_attributes(params[:case_study])
  flash[:notice] = 'CaseStudy was successfully updated.'
  redirect_to :action => 'list'
else
  render :action => 'edit'
end

end

On submitting a new file to replace the existing uploaded file, it
completely ignores the validates_presence_of validation, however it
doesn’t store the invalid file either. Checking the server trace, I can
see that the file is being deleted if it’s an invalid file.