Я создаю базовое приложение для блога с рельсами / mongoid и клиентом iOS, в котором есть модель постов с именем и изображением.Я получаю следующую ошибку при создании новой позиции из приложения iOS.
BSON::InvalidDocument
(Cannot serialize an object of class ActionDispatch::Http::UploadedFile into BSON.):
app/controllers/posts_controller.rb:47:in `create'
app/controllers/posts_controller.rb:46:in `create'
На стороне iOS я использую ASIHttpRequest со следующим кодом:
NSURL *url=[[NSURL alloc] initWithString:@"http://localhost:3000/posts"];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setPostValue:@"Ben" forKey:@"[post] name"];
[request setFile:@"/Users/Seb/Desktop/beach.jpeg" forKey:@"[post] image"];
[request startSynchronous];
Журнал сервера показывает:
Started POST "/posts" for 127.0.0.1 at Thu May 05 14:37:10 -0700 2011
Processing by PostsController#create as HTML
Parameters: {"post"=>{" name"=>"Ben", " image"=>#<ActionDispatch::Http::UploadedFile:0x103e48fc8 @content_type="image/jpeg", @original_filename="beach.jpeg", @headers="Content-Disposition: form-data; name=\"[post] image\"; filename=\"beach.jpeg\"\r\nContent-Type: image/jpeg\r\n", @tempfile=#<File:/var/folders/PI/PI+kcHrCHfuDh-K+ppxAxE+++TI/-Tmp-/RackMultipart20110505-11613-x75qie-0>>}}
Completed in 21ms
BSON::InvalidDocument (Cannot serialize an object of class ActionDispatch::Http::UploadedFile into BSON.):
app/controllers/posts_controller.rb:47:in `create'
app/controllers/posts_controller.rb:46:in `create'
Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.0.6/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.3ms)
Rendered /Library/Ruby/Gems/1.8/gems/actionpack-3.0.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (9.5ms)