Forum: Rails-ES subir mp3 a base de datos y guardar el nombre en un campo

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.
4b44d96859ea5637574e93f76116bfeb?d=identicon&s=25 Oscar Navidad (elrosnav)
on 2009-06-05 18:14
hola a todos estoy tratando de subir un mp3 a mi servidor y guardar el
nombre del archivo en mi base de datos he encontrado un totorial con el
cual logro subir el archivo al servidor pero no logro guardar el nombre
en la base de datos si alguien me puede ayudar en mi  modelo tengo el
siguiente codigo

class Musica < ActiveRecord::Base
def self.save(upload)
    name =  upload['datafile'].original_filename
    directory = "public/data"
    # create the file path
    path = File.join(directory, name)
    # write the file
    File.open(path, "wb") { |f| f.write(upload['datafile'].read) }
  end

end
en el controlador lo siguiente

class UploadController < ApplicationController
  def index
     render :file => 'app\views\upload\uploadfile.rhtml'
  end
  def uploadFile
    post = Musica.save(params[:upload])
    nuevo = Musica.new(params['nombre'=>'oscar']);
    nuevo.save
    render :text => "File has been uploaded successfully"
  end
end
y la vista  lo siguiente
<h1>File Upload</h1>
<% form_tag ({:action => 'uploadFile'},
                        :multipart => true) do %>
<p><label for="upload_file">Select File</label> :
<%= file_field 'upload', 'datafile' %></p>
<%= submit_tag "Upload" %>
<%end%>
nose si lo estoy haciendo mal o tengo que usar un plugin
gracias de antemano
saludos
4b44d96859ea5637574e93f76116bfeb?d=identicon&s=25 Oscar Navidad (elrosnav)
on 2009-06-05 18:16
perdon mi controlador esta de la siguiente forma
class UploadController < ApplicationController
  def index
     render :file => 'app\views\upload\uploadfile.rhtml'
  end
  def uploadFile
    post = Musica.save(params[:upload])

    render :text => "File has been uploaded successfully"
  end
end



perdon por el error pero he probado varias cosas y nada gracias por la
ayuda
B7de309e2f3436b5b1c0b5c18dad089d?d=identicon&s=25 Carlos Belizón Ibañez (paliyoes)
on 2009-06-05 18:37
Oscar Navidad wrote:
> perdon mi controlador esta de la siguiente forma

¿Tienes una tabla Musicas en tu BD?
4b44d96859ea5637574e93f76116bfeb?d=identicon&s=25 Oscar Navidad (elrosnav)
on 2009-06-05 19:15
si tengo una bd llamada musicas y tiene un campo llamado image
1f2eadfb41362800ebc2cf211b91d0f7?d=identicon&s=25 javier ramirez (Guest)
on 2009-06-05 19:26
(Received via mailing list)
Hola,

>  pero no logro guardar el nombre en la base de datos
>

podría ser porque en ningún momento le estás diciendo que haga
absolutamente nada con tu base de datos?

> end
>

En ese método estás leyendo un fichero temporal (el parámetro upload) y
creando un fichero binario con el nombre y el contenido del upload. No
estás haciendo nada contra la base de datos.

Antes de cerrar el método prueba a hacerle algo así como

Musica.create(:name=>name)

(si el campo no se llama "name" en la tabla cambia :name por el valor
apropiado)

suerte,

j

--
javier ramírez

..i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
..you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez
This topic is locked and can not be replied to.