Gianluca Tessarolo
2007-May-28 20:39 UTC
upload_column problems on post after validation error
Hi to all the crew !
I''ve a little (big ?) problem.
I''m using upload_column plugin, it works very well but it throws an
exception when I try to repost the form after a validation error.
Here some details:
Model: (hostel.rb)
HOSTEL_PHOTO_DIR = Proc.new {|inst, attr| "hostel/#{inst.id}"}
HOSTEL_PHOTO_THUMB = "100x100"
HOSTEL_PHOTO_NORMAL = "400x400"
image_column :photo_1, :store_dir => HOSTEL_PHOTO_DIR,
:versions => { :thumb => HOSTEL_PHOTO_THUMB,
:normal => HOSTEL_PHOTO_NORMAL},
:filename => Proc.new {|inst, orig, ext|
"photo_1.#{ext}"}
View (signup_customer.rhtml):
<% upload_form_tag :action => "update_customer" do %>
...
<label for="hostel_photo_1">Photo 1</label>
<%= upload_column_field "hostel", "photo_1" %>
<% end %>
Controller:
def update_customer
begin
...
hostel.attributes = params[:hostel] # Where the error occurred...
hostel.save!
rescue
@hostel = hostel
render :action => "signup_customer"
end
end
Now, if I post the form without validation exception, all works good !!!
But if I try to post the form without a required field I give an
exception and the controller show the form again, if I put the required
data and post again I receive this exception:
invalid format of
''hostel/117/photo_1.jpg;0182-Problemi-gravi.jpg''
|vendor/plugins/uploadcolumn/lib/upload_column.rb:431:in `set_path''
vendor/plugins/uploadcolumn/lib/upload_column.rb:809:in `send''
vendor/plugins/uploadcolumn/lib/upload_column.rb:809:in `photo_1_temp=''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1672:in
`send''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1672:in
`attributes=''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1671:in
`each''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/base.rb:1671:in
`attributes=''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/associations/association_proxy.rb:123:in
`send''
/usr/lib/ruby/gems/1.8/gems/activerecord-1.15.3/lib/active_record/associations/association_proxy.rb:123:in
`method_missing''
app/controllers/hostel_controller.rb:53:in `update_customer''|
At line 53 in hostel_controller.update_customer there is the line:
hostel.attributes = params[:hostel] # Where the error occurred...
I don''t know how to solve this problem !!!
Can you help me ????
Thanks in advance !!!
Tex.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---
Igor Gladkoborodov
2007-Sep-27 09:25 UTC
Re: upload_column problems on post after validation error
That''s because it tryes to assign photo_1_temp before photo_1.
This should work:
def update_customer
begin
...
hostel.attributes = params[:hostel][:photo_1] if
params[:hostel][:photo_1]
hostel.attributes = params[:hostel] # Where the error occurred
...
hostel.save!
rescue
@hostel = hostel
render :action => "signup_customer"
end
end
--
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
-~----------~----~----~----~------~----~------~--~---