Error al componer variable

Ya encontrado el error.

Componía la variable dentro del módulo de descarga -def pdf_descarga-,
pero al realizar validación en el modelo en el create era necesario,
componer la variable dentro del “def create”, y con anterioridad al “if
@descarga.save”.

Saludos y gracias.


De: Fernando González Macías
Enviado el: mar 11/18/2008 10:38
Para: La lista sobre Ruby On Rails (rubyonrails.com) en castellano
Asunto:

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

Fernando González Macías

[email protected]