Ich habe wirklich eine Wand getroffen und brauche Hilfe! Danke, dass Sie so weit gelesen haben!Upload auf Ruby on Rails vom iPhone mit ASIHTTPRequest
Ich bin gerade dabei, eine App zu schreiben, die mit meinem ROR-Webserver nach Datenbankanfragen redet und dank ActiveResource super funktioniert. Aber ich muss jetzt auch Dateien auf den Server hochladen, und ich habe vor, ASIHTTPRequest zu verwenden, das gut aussieht. Mein Problem ist jedoch, dass ich nicht sicher bin, wie ich die POST-Anfrage auf der ROR-Seite abliefern soll ... Ich benutze Büroklammer aber habe wirklich eine Mauer getroffen.
Auf der ASIHTTP Seite ich einfach ich schreibe:
[request setData:data withFileName:@"photo.jpg" andContentType:@"image/jpeg" forKey:@"asset[image]"];
und auf der Seite Rubin ich tue ...
class Asset < ActiveRecord::Base
validates_attachment_presence :image
has_attached_file :image
end
class AssetsController < ApplicationController
protect_from_forgery :only => [:update, :destroy]
.....
aber es funktioniert nicht immer, ich bin ziemlich sicher, Es hat etwas mit dem POST-Formular-Datensatz zu tun, aber ich bin völlig festgefahren.
Ich erhalte die Fehlermeldung:
Parameters: {"assets"=>{"images"=>#<File:/var/folders/gM/gM15qjM2G3W0iVNaT1evD++++TI/-Tmp-/RackMultipart20091112-2285-2i0qq5-0>}} NoMethodError (You have a nil object when you didn't expect it! You might have expected an instance of ActiveRecord::Base. The error occurred while evaluating nil.[]): app/models/asset.rb:2 app/controllers/assets_controller.rb:46:in
`create'
Jede Hilfe sehr sehr dankbar empfangen werden würde.
Chris
Vielen Dank!
Ich fand auch, dass Sie [Anfrage setPostValue: @ "Create" forKey: @ "commit"]; – Chris