Hi,
I followed the instruction on Agile Development book to upload files
(attached below)
I want to check that the user entered a name for the file and that the
size of the file is not greater than 1 megabyte. However, the
"validates_for_presence" and "validates_size_of" are not
putting any
error message on the screen for the user and I only get Sql and
application error.
appreciate any help.
Thanks,
-Albert
Controller:
def upload_file
@document = Document.new
....
end
def save_file
@document = Document.new(params[:document])
if @document.save
flash[:notice] = "file has been successfully uploaded"
redirect_to (params[:referer] || :back)
else
render(:action => :upload_file)
end
end
Model:
class Document < ActiveRecord::Base
validates_size_of :data, :maximum => 1.megabyte
validates_presence_of :name
def document=(document_field)
self.name = base_part_of(document_field.original_filename)
self.content_type = document_field.content_type.chomp
self.data = document_field.read
end
def base_part_of(file_name)
name = File.basename(file_name)
name.gsub(/[^\w._-]/, '''' )
end
end
View:
<%= error_messages_for("document" ) %>
<!-- Upload Form -->
<%= form_tag({:action => ''save_file'', :member_study
=> @member_study},
:multipart => true) %>
<%= file_field("document" , "document", "size"
=> 66) %>
<%= text_area("document" , "comment", "cols"
=> 50 , "rows" => 5 ) %>
<%= submit_tag("Upload file" ) %>
<%= hidden_field_tag "referer", nil, :value =>
request.env["HTTP_REFERER"] %>
<%= end_form_tag %>
--
Posted via http://www.ruby-forum.com/.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk-unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---