23
Jun
09

Usando attachment fu para para hacer uploads de documentos

Es muy parecido a lo de las imágenes.

Primero se instalamos el plugin…


ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/attachment_fu

Se genera el modelo del documento…


ruby script/generate model Document record_id:integer record_type:string filename:string content_type:string size:integer

rake db:migrate para las migraciones. Y ahora se anhade lo siguiente al model de ‘Document’. Las opciones completas de lo que se puede hacer están acá: http://wiki.github.com/technoweenie/attachment_fu.


class Document < ActiveRecord::Base
belongs_to :record, :polymorphic => true
has_attachment :content_type => ['application/pdf', 'application/msword', 'text/plain'],
:storage => :file_system,
:path_prefix => 'public/records'

validates_as_attachment
end

Los últimos pasos son agregar el metodo uploaded_document= a los modelos que se relacionan con los archivos. Por ejemplo: Person.rb tiene un documento.


class Person < ActiveRecord::Base

has_one :document, :dependent => :destroy, :as => :record

validates_presence_of :title
validates_length_of :title, :in => 1..100
validates_length_of :rating, :in => 0..10, :allow_nil => true

def uploaded_document=(data)
unless data.blank?;
document.destroy if document
self.reload
create_document :uploaded_document => data ##dudas en esta parte... :uploaded_data???
end
end

end

Para aceptar uploads en la vista se tiene que incluir esto en la forma.


<% form_for @movie, :html => {:multipart => true} do |f| %>

...

Document
<%= f.file_field :uploaded_document %>

ejemplo de liga al documento: <%= link_to “Document”, person.document.public_filename if person.document %>

Bueno ciao.


0 Respuestas a “Usando attachment fu para para hacer uploads de documentos”



  1. Aún no hay comentarios

Escribe un comentario