Foros del Web » Programando para Internet » Ruby »

Rails ActiveAdmin Upload Image

Estas en el tema de Rails ActiveAdmin Upload Image en el foro de Ruby en Foros del Web. Hola buenas noches, estoy empezando con Ruby on Rails. Estoy utilizando activeadmin para la parte de administracion, y estoy intentando hacer una carga de fotos. ...
  #1 (permalink)  
Antiguo 20/04/2012, 16:58
 
Fecha de Ingreso: enero-2008
Mensajes: 35
Antigüedad: 16 años, 3 meses
Puntos: 1
Rails ActiveAdmin Upload Image

Hola buenas noches, estoy empezando con Ruby on Rails.

Estoy utilizando activeadmin para la parte de administracion, y estoy intentando hacer una carga de fotos. He conseguido que la foto se copie en un directorio determinado pero no me guarda en la base de datos el nombre (o la referencia a esa foto), con el fin de poder editar más tarde o simplemente verla.

A continuación pongo el código del modelo de la clase en cuestión (app/models/albums.rb)
Código Rails:
Ver original
  1. class Album < ActiveRecord::Base
  2.   has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
  3.  
  4.   attr_accessor :avatar_file_name
  5.   attr_accessor :avatar_content_type
  6.   attr_accessor :avatar_file_size
  7.   attr_accessor :avatar_updated_at
  8.  
  9.   has_many :albums_pictures
  10.   has_many :pictures, :through => :albums_pictures
  11. end


En este caso pongo el album.rb (app/admin/albums.rb)
Código Rails:
Ver original
  1. ActiveAdmin.register Album do
  2.   show do |ad|
  3.     attributes_table do
  4.       row :nombre
  5.       row :avatar do
  6.         image_tag ad.avatar.url
  7.       end
  8.     end
  9.     active_admin_comments
  10.   end
  11. end

A ver si alguien me puede echar un cable.

Gracias y un saludo.
  #2 (permalink)  
Antiguo 20/04/2012, 17:28
 
Fecha de Ingreso: enero-2008
Mensajes: 35
Antigüedad: 16 años, 3 meses
Puntos: 1
Respuesta: Rails ActiveAdmin Upload Image

Cita:
Iniciado por titogelo Ver Mensaje
Hola buenas noches, estoy empezando con Ruby on Rails.
...
A continuación pongo el código del modelo de la clase en cuestión (app/models/albums.rb)
Código Rails:
Ver original
  1. class Album < ActiveRecord::Base
  2.   has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
  3.  
  4.   attr_accessor :avatar_file_name
  5.   attr_accessor :avatar_content_type
  6.   attr_accessor :avatar_file_size
  7.   attr_accessor :avatar_updated_at
  8.  
  9.   has_many :albums_pictures
  10.   has_many :pictures, :through => :albums_pictures
  11. end

...
Me respondo a mi mismo ya he encontrado la solución. Lo que me faltaba era indicarle a rails que me hiciera accesibles los campos de la tabla desde la clase del modelo.

Lo que me falta por añadir es attr_accesible para cada uno de los campo, con esto se crearan automaticamente los getters y setters de dichos campos y podran ser modificados por rails.

Quedaría de la siguiente manera:
Código Rails:
Ver original
  1. class Album < ActiveRecord::Base
  2.   has_attached_file :avatar, :styles => { :medium => "300x300>", :thumb => "100x100>" }
  3.  
  4.   attr_accessible :avatar
  5.   attr_accessible :autor
  6.   attr_accessible :nombre
  7.   attr_accessible :avatar_file_name
  8.   attr_accessible :avatar_file_size
  9.   attr_accessible :avatar_content_type
  10.   attr_accessible :avatar_updated_at
  11.  
  12.   has_many :albums_pictures
  13.   has_many :pictures, :through => :albums_pictures
  14. end


Gracias un saludo. El tema lo podeis dar como cerrado.

Etiquetas: activeadmin, rails, rails3
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:56.