Forum: Rails-ES Problema attachment_fu

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Jose vicente R. (Guest)
on 2009-03-05 17:27
Hola, tengo un problema con este plugin. Lo tenemos instalado para que
permita subir imagenes y genere 3 imagenes con distinto tamaño para
utilizarlas en un sitio u otro de la aplicacion segun interese.

Os comento como lo tenemos organizado:

En el modelo de la imagen:

class Image < ActiveRecord::Base
.
.
.

has_attachment  :content_type => ['image/jpeg', 'image/pjpeg',
'image/gif', 'image/jpg', 'image/png'],
                              :storage => :file_system,
                              :path_prefix => 'public/images',
                              :size => 1.kilobyte..300.kilobytes,
                              :resize_to => '700>',
                              :thumbnails => { :titular1 => '220>',
:titular2 => '150>', :foro => '440>'  },
                              :processor => :MiniMagick

  validates_as_attachment


-------------------------------------
El controlador en cuestion se llama titulares. El codigo es asi:

class TitularesController < ApplicationController
.
.
.
def edit
    @titulo = "Editar titular"
    @titular = Contenido.find(params[:id])
  end
.
.
.
def create
    @titular=Contenido.new(params[:contenido])
    @titular.subtipo_id=Subtipo::TITULARES

    # Actualizo el usuario, incrementando sus puntos y su nº de posts de
blog
    autor = Usuario.find(@titular.usuario_id)
    estadisticas_up(autor.id, Subtipo::TITULARES)
    autor.update_attribute("puntos", autor.puntos + @titular.puntos_msg)
    autor.update_attribute("puntos_anual", autor.puntos_anual +
@titular.puntos_msg)
-----------------------------------------------------
/*AQUI VIENE LO INTERESANTE PARA LAS IMAGENES*/
-----------------------------------------------------
    respond_to do |format|
      if @titular.save
        #guardo las imagenes
        unless (image = params[:image]).nil?
          img = Image.new(image.merge({:usuario_id =>
session[:usuario_id], :contenido_id => @titular.id, :orden =>1}))
          img.save
        end
        format.html { redirect_to(portada_titulares_path) }
        format.xml  { render :xml => @titular, :status => :created,
:location => @titular }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @titular.errors, :status =>
:unprocessable_entity }
      end
    end
  end
.
.
.
----------------------------------------------------------


Pues bien, a la hora de editar un titular no hay ningun tipo de
problema, es decir puedo añadir o cambiar una foto y en la base de datos
automaticamente se guardan las tres copias de la imagen (cada una con
distinto tamaño y con el nombre retocado para poderlas utilizar en un
sitio u otro de la aplicacion). Pero el problema viene a la hora de
crear un titular, si cuando creo el titular añado una imagen únicamente
me guarda en la base de datos la imagen con el tamaño original, no crea
las copias. Llevamos un buen rato intentando ver el fallo pero no damos
con él, mas que nada por que en el método de edit no hay prácticamente
nada escrito, vamos que lo hace automáticamente, no vemos porqué en el
create no es asi.

Un saludo y gracias por la ayuda.
Daniel R. Troitiño (Guest)
on 2009-03-05 17:47
(Received via mailing list)
2009/3/5 Jose vicente Ribera pellicer
<removed_email_address@domain.invalid>:
>        end
Estás haciendo un img.save sin recuperar el valor, que puede ser falso
y por lo tanto que no se guarde tu imagen debido a algún fallo
(validación, etc...). Utiliza save! o comprueba que save no sea falso
y en su caso comprueba que errores aparecen en el modelo.

Suerte.
Jose vicente R. (Guest)
on 2009-03-05 17:52
Daniel R. Troitiño wrote:
> 2009/3/5 Jose vicente Ribera pellicer
> <removed_email_address@domain.invalid>:
>>        end
> Estás haciendo un img.save sin recuperar el valor, que puede ser falso
> y por lo tanto que no se guarde tu imagen debido a algún fallo
> (validación, etc...). Utiliza save! o comprueba que save no sea falso
> y en su caso comprueba que errores aparecen en el modelo.
>
> Suerte.


Gracias, me pongo a ello ahora mismo.
Isaac Feliu Pérez (Guest)
on 2009-03-05 18:01
(Received via mailing list)
Daniel,

Por mi experiencia, y después de intentarlo hacer de 1000 formas
distintas, he llegado a lo que para mí es la "solución perfecta", y
pasa por crear las imágenes dentro del modelo en lugar del
controlador. En el formulario, el input seria:

<input type='file' name='contenido[uploaded_data]' ..../>

y en el modelo Contenido:

class Contenido < ActiveRecord::Base
attr_accessor :new_image

after_save :save_new_image

def uploaded_data=(data)
   unless data.blank?
     new_image = data
   end
end

def save_new_image
   unless self.new_image.blank?
     images.create!({:uploaded_data => new_image}.merge(:created_by =>
self.created_by ....))
   end
end


Esto es sin haber visto tus modelos ni sus relaciones, pero para que
te hagas una idea.

de esta forma, en el controlador solo tienes el
Contenido.new(params[:contenido]) o
@contenido.update_attributes(params[:contenido])

Espero que te sirva mi consejo!

Saludos,
--
Isaac Feliu
Jose vicente R. (Guest)
on 2009-03-05 18:02
Es muy raro, sigue igual. Es decir guarda la imagen pero no genera las
de distinto tamaño.

Con img.save! tampoco genera ningun tipo de error.
Alfredo S. (Guest)
on 2009-03-05 18:12
(Received via mailing list)
Hola,

Si la imagen original se guarda bien, pero no se generan los
thumbnails, tiene pinta que el encargado de generarlas, en este caso
MiniMagick, no esta haciendo bien su trabajo, y attachment_fu ni se
entera..

Comprueba que Minimagick esta funcionando bien, o prueba a usar otro
procesador, como rmagick, para descartar problemas por lo menos...

Suerte !!
El 05/03/2009, a las 17:02, Jose vicente Ribera pellicer
escribió:
> Es muy raro, sigue igual. Es decir guarda la imagen pero no genera las
Laura V. (Guest)
on 2009-03-05 18:23
(Received via mailing list)
Hola Jose Vicente,

Como también ha dicho Alfredo, me suena que me pasó eso con TinyMCE Plus
que
también contenía attachment_fu, y el problema se solucionó instalando
MiniMagick.

On Thu, Mar 5, 2009 at 5:12 PM, Alfredo <removed_email_address@domain.invalid> 
wrote:

> Suerte !!
> > removed_email_address@domain.invalid
> > http://lists.simplelogica.net/mailman/listinfo/ror-es
>
> _______________________________________________
> Ror-es mailing list
> removed_email_address@domain.invalid
> http://lists.simplelogica.net/mailman/listinfo/ror-es
>



--
BEECODER
Laura Valverde García
removed_email_address@domain.invalid
m 644 420 820

www.beecoder.com
Jose vicente R. (Guest)
on 2009-03-05 18:25
Alfredo Solano wrote:
> Hola,
>
> Si la imagen original se guarda bien, pero no se generan los
> thumbnails, tiene pinta que el encargado de generarlas, en este caso
> MiniMagick, no esta haciendo bien su trabajo, y attachment_fu ni se
> entera..
>
> Comprueba que Minimagick esta funcionando bien, o prueba a usar otro
> procesador, como rmagick, para descartar problemas por lo menos...
>
> Suerte !!
> El 05/03/2009, a las 17:02, Jose vicente Ribera pellicer
>escribi�:
> Es muy raro, sigue igual. Es decir guarda la imagen pero no genera las


Tienes mas razon que un santo, termino de probarlo en el servidor y
funciona a la perfeccion. en localhost no tenia el MiniMagick.

Mil gracias por la ayuda.
Benjamín Cárdenas Salamandra (Guest)
on 2009-03-06 03:52
(Received via mailing list)
_______________________________________________
Ror-es mailing list
removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es
This topic is locked and can not be replied to.