Naprawdę uderzyłem w ścianę i potrzebuję pomocy! Dziękuję za przeczytanie tego tak daleko!Przesyłanie do Ruby on Rails z iPhone'a za pomocą ASIHTTPRequest
Jestem w trakcie pisania aplikacji, która rozmawia z moim serwerem ROR dla żądań bazy danych i działa dzięki ActiveResource. Ale teraz muszę również przesłać pliki na serwer, a ja zamierzam użyć ASIHTTPRequest, który wygląda świetnie, ale mój problem polega na tym, że nie jestem po prostu pewien, jak przekazać żądanie POST po stronie ROR ... Używam spinacza ale naprawdę uderzyły w mur.
Na stronie ASIHTTP ja po prostu pisząc:
[request setData:data withFileName:@"photo.jpg" andContentType:@"image/jpeg" forKey:@"asset[image]"];
a po stronie rubinowym robię ...
class Asset < ActiveRecord::Base
validates_attachment_presence :image
has_attached_file :image
end
class AssetsController < ApplicationController
protect_from_forgery :only => [:update, :destroy]
.....
Ale to nie zawsze, jestem całkiem pewny, ma to coś wspólnego z zbiorem danych POST, ale całkowicie utknąłem.
Dostaję błąd:
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'
Każda pomoc będzie bardzo wdzięcznie przyjmowane.
Chris
Dzięki!
Stwierdziłem również, że musisz uwzględnić [request setPostValue: @ "Create" forKey: @ "commit"]; – Chris