Domanda

Ho davvero colpito un muro e am bisogno di qualche aiuto! Grazie per aver letto fino a questo punto!

Sono nel bel mezzo di scrivere un app che parla al mio web-server ROR per le richieste di database e funziona alla grande grazie a ActiveResource. Ma ora ho bisogno di caricare anche file sul server, e ho intenzione di usare ASIHTTPRequest che sembra grande, il mio problema però è che non sono solo sicuro di come a portata di mano la richiesta POST sul lato ROR ... Sto usando graffetta ma hanno davvero colpito un muro di mattoni.

Sul lato ASIHTTP sto semplicemente scrivendo:

[request setData:data withFileName:@"photo.jpg" andContentType:@"image/jpeg" forKey:@"asset[image]"];

e sul lato rubino che sto facendo ...

class Asset < ActiveRecord::Base
   validates_attachment_presence :image
    has_attached_file :image
end

class AssetsController < ApplicationController  
    protect_from_forgery :only => [:update, :destroy] 
.....

Ma non riesce sempre, io sono abbastanza sicuro che ha qualcosa a che fare con la forma POST set di dati, ma sono completamente bloccato.

sto ottenendo l'errore:

 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
     

`creare '

Qualsiasi aiuto sarebbe molto molto ben accetto.

Chris

Grazie!

È stato utile?

Soluzione

La prima cosa che mi piacerebbe verificare con il fare l'upload sta mettendo il nome del parametro a ciò file_column (o qualsiasi altra cosa, personalmente mi piacerebbe utilizzare Paperclip) si aspetta.

Se hai qualcosa di simile:

class Entry < ActiveRecord::Base
    file_column :image
end

È necessario assicurarsi che il parametro (nome del campo form) corrisponde a ciò che è previsto. Per l'esempio di sopra di questo potrebbe essere:

name="entry[image]"

Inoltre, assicurarsi che si sta facendo un post modulo multistrato, non solo lo standard.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top