Errores al usar el complemento de clip para rieles en producción. La imagen no se guarda en el servidor
Estoy ejecutando rieles 3 y clip 2.3.4. En el desarrollo en OS X todo funciona muy bien, pero en la producción hay algunos problemas que no puedo entender. Si alguien tiene sugerencias por favor hágamelo saber.
Estoy cargando el archivo usando flash BTW. Como dije, el desarrollo local funciona muy bien.
Revisé el registro de producción y parece que la POST está sucediendo bien.
Started POST "/addimage" for 10.0.136.119 at 2011-01-13 19:49:09 +0000
Processing by BowlsController#create as HTML
Parameters: {"Filename"=>"IMG_0585.JPG", "fbid"=>"123456789", "Filedata"=>#<ActionDispatch::Http::UploadedFile:0x000000054afdf8 @original_filename="IMG_0585.JPG", @content_type="application/octet-stream", @headers="Content-Disposition: form-data; name=\"Filedata\"; filename=\"IMG_0585.JPG\"\r\nContent-Type: application/octet-stream\r\n", @tempfile=#<File:/tmp/RackMultipart20110113-23741-bhze8q>>, "Upload"=>"Submit Query"}
Completed 200 OK in 64ms (Views: 0.4ms | ActiveRecord: 0.9ms)
Aquí está la acción en rieles que estoy llamando
def create
@user = User.find_by_fbid(params[:fbid])
if @user.nil?
#create user and register if user does not exist
@user = User.new( :fbid => params[:fbid] )
@user.save
end
if params[:Filedata]
@image = @user.images.build()
@image.swfupload_file = params[:Filedata]
if @image.save
render :json => { :data => @image, :success => true }
else
render :json => { :info => "error", :success => false }
end
else
@image = Image.new params[:img]
if @image.save
render :json => { :data => @bowl, :success => true }
else
render :json => { :info => "error", :success => false }
end
end
end
end
Básicamente, un usuario puede tener muchas imágenes, así que debo asegurarme de que el usuario existe. Si no existen, primero creo un nuevo usuario.
También tengo otro método que me permite tomar la ruta a la última imagen que sube el usuario y que también devuelve un error en la producción.
def last_img
@user = User.find_by_fbid(params[:fbid])
if @user.nil?
render :json => { :error => "no bowls for this user" }
else
bowl = @user.images.first
render :json => { :img_path => image.img.url}
end
end
El error que obtengo para esto es el siguiente NoMethodError en ImagesController # last_image
método indefinido 'img' para nil: NilClass