Hola.
Estoy haciendo una aplicación que permite descargase unos documentos en
pdf. El caso es que quiero validar que el documento seleccionado
-formado por Dia+Mes+Año+NombrePublicacion-, realmente existe en el
directorio. El caso es que intento hacer la validación en el modelo, con
un validate_on_create.
El problema es que la variable global $nombre_publicacion no se me
actualiza, aunque cambie la fecha y siempre obtengo el mensaje de error
de que el fichero no existe, pero con el nombre de fichero de la primera
selección que realizo.
Por otra parte, querrÃa preguntar una cosa que ya pregunté hace algún
tiempo, pero no me quedó clara, y es saber, si desde una aplicación
Rails, se puede acceder a un fichero que esté situado fuera de
RAILS_ROOT y sus subcarpetas. Yo ahora mismo tengo las publicaciones en
RAILS_ROOT\public\publicaciones, pero me interesarÃa un repositorio
distinto y que la aplicación, pudiera acceder a los ficheros en dicho
repositorio.
Parte del código del controlador:
class DescargasController < ApplicationController
def pdf_descarga
$nombre_publicacion =
@removed_email_address@domain.invalid("%b")[email protected]("%y")[email protected]+".pdf"
send_file("#{RAILS_ROOT}/public/publicaciones/#{$nombre_publicacion}",
:type => “application/pdf”)
end
def create
@descarga = Descarga.new(params[:descarga])
@publicacion = Publicacion.find(params[:descarga][:publicacion_id])
respond_to do |format|
if @descarga.save
pdf_descarga
return
#format.html { redirect_to(@descarga) }
#format.xml { render :xml => @descarga, :status => :created,
:location => @descarga }
else
format.html { render :action => "new" }
format.xml { render :xml => @descarga.errors, :status =>
:unprocessable_entity }
end
end
end
end
En el modelo, tengo lo siguiente:
class Descarga < ActiveRecord::Base
belongs_to :publicacion
belongs_to :user
validates_presence_of :publicacion, :fecha
#Valida sólo cuando se crea el objeto.
def validate_on_create
unless
FileTest.exist?("#{RAILS_ROOT}/public/publicaciones/#{$nombre_publicacion}")
errors.add($nombre_publicacion, "Esta publicación,no se
encuentra en el histórico.")
end
end
end
Saludos y gracias por todo.
Fernando González MacÃas