Hola Amigos,
Tengo un problema en la ejecución en un formulario con :multipart
activado para UpLoad de ficheros de texto al servidor.
El fichero sube y se guarda con normalidad, incluso en development.log
veo que ha sido redirected_to ‘list’ pero siempre se produce un error
500.
Al observar el development.log, veo que no se produce el salto a la
acción list, en su lugar intenta un segundo proceso ‘post’ de
Base::create y se produce el error.
Agradeceré cualquier ayuda o pista al repecto.
Gracias a todos de antemano,
José Iborra
El controlador…
def list
@tmp_upload_pages, @tmp_uploads = paginate :tmp_uploads, :order =>
‘updated_at’, :per_page => DEF_ITEMS_PAGE
end
def create
args = params[‘tmp_upload’].merge(:user_id => @user_id)
isvalid = valid_file?(args[‘file’])
if isvalid
begin
@tmp_upload = TmpUpload.new(args)
@tmp_upload.save
flash[:notice] = ‘File saved.’
redirect_to :action => ‘list’
rescue => e
flash[:error] = “Error saving file: ( #{e.message} ).”
render :action => ‘new’
end
else
flash[:notice] = “Must select a File to UpLoad”
render :action => ‘new’
end
end
En development.log
Processing TmpUploadsController#create (for 127.0.0.1 at 2006-12-19
17:45:27) [POST]
Session ID: 4a9f30b221b7d9f8d0ae30ceb32393cc
Parameters: {“commit”=>“Upload”,
“tmp_upload”=>{“file”=>#StringIO:0x34da818}, “action”=>“create”,
“controller”=>“tmp_uploads”}
e[4;35;1mPerson Load (0.016000)e[0m e[0mSELECT * FROM people WHERE
(people.id = 1) LIMIT 1e[0m
e[35;2mapp/controllers/application.rb:276:in load_user'e[0m e[4;36;1mUser Load (0.000000)e[0m e[0;1mSELECT * FROM users WHERE (users.
person_id= 1 ) LIMIT 1e[0m e[36;2mapp/controllers/application.rb:278:in
load_user’e[0m
e[4;35;1mPerson Load (0.015000)e[0m e[0mSELECT * FROM people WHERE
(people.id = 1) LIMIT 1e[0m
e[35;2mapp/models/user.rb:100:in load_subscription_to'e[0m e[35;2mapp/models/user.rb:15:in
role’e[0m
e[35;2mapp/controllers/application.rb:278:in load_user'e[0m e[4;36;1mTmpUpload Columns (0.000000)e[0m e[0;1mSHOW FIELDS FROM tmp_uploadse[0m e[4;35;1mSQL (0.000000)e[0m e[0mBEGINe[0m e[35;2mapp/controllers/tmp_uploads_controller.rb:32:in
create’e[0m
e[4;36;1mSQL (0.000000)e[0m e[0;1mINSERT INTO tmp_uploads (size
,
updated_at
, lines
, filename
, user_id
) VALUES(535, ‘2006-12-19
17:45:27’, 17, ‘upload_hotels_01.csv’, 1)e[0m
e[36;2mapp/controllers/tmp_uploads_controller.rb:32:in create'e[0m e[4;35;1mSQL (0.078000)e[0m e[0mCOMMITe[0m e[35;2mapp/controllers/tmp_uploads_controller.rb:32:in
create’e[0m
Redirected to http://localhost:3000/tmp_uploads/list
@tmp_upload saved. Redirected to action List
Exit function ‘create’.
Completed in 13.04500 (0 reqs/sec) | DB: 0.10900 (0%) | 302 Found
[http://localhost/tmp_uploads/create]
Processing Base#create (for 127.0.0.1 at 2006-12-19 17:45:40) [POST]
Session ID: 4a9f30b221b7d9f8d0ae30ceb32393cc
Parameters: {“commit”=>“Upload”,
“tmp_upload”=>{“file”=>#StringIO:0x34da818}, “action”=>“create”,
“controller”=>“tmp_uploads”}
TypeError (singleton can’t be dumped):
C:/InstantRails/ruby/lib/ruby/1.8/pstore.rb:348:in `dump’