Pregunta

He realmente dio una necesidad pared y la mañana de alguna ayuda! Gracias por leer hasta aquí!

Estoy en el medio de escribir una aplicación que se comunica con mi ROR servidor web para solicitudes de base de datos y funciona muy bien gracias a ActiveResource. Pero ahora tengo que cargar también los archivos al servidor, y planeo usar ASIHTTPRequest la que se ve muy bien, aunque mi problema es que no estoy seguro de cómo entregar la solicitud POST en el lado ROR ... estoy usando un clip pero en realidad han chocado contra un muro de ladrillo.

En el lado ASIHTTP Simplemente estoy escribiendo:

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

y en el lado de rubí que estoy haciendo ...

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

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

Pero siempre falla, estoy bastante seguro de que tiene algo que ver con la forma de POST conjunto de datos, pero estoy completamente atascado.

Estoy recibiendo el error:

 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
     

`crear '

Cualquier ayuda sería muy, muy agradecido recibió.

Chris

Gracias!

¿Fue útil?

Solución

Lo primero que me gustaría comprobar con la realización de la carga se está poniendo el nombre del parámetro a lo file_column (o lo que sea, en lo personal me gustaría usar Paperclip) está a la espera.

Si usted tiene algo como:

class Entry < ActiveRecord::Base
    file_column :image
end

Usted necesita asegurarse de que el parámetro (nombre de campo de formulario) corresponde a lo que se espera. Para el ejemplo anterior esto sería:

name="entry[image]"

Además, asegúrese de que está haciendo un anuncio impreso de varias copias, no sólo la norma.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top