Si lo que escribi no estaba muy claro. Ahora pude resolver el problema y les
cuento lo que queria hacer y como lo solucione.
En pocas palabras necesitaba subir dos archivos uno que contenia la
clasificacion y el otro los resultados de una carrera. Y tengo los modelos
de esta manera
Race
has_many :classifitacions
has_many :firstresults
Classification
belongs_to :race
FirstResult
belongs_to :race
lo que no entendia era como podia leer estos archivos e insertarlos en la
tabla, despues de pensar un poco mas y leer otro poco acerca del create y
build, llegue a esto
class Admin::RacesController < ApplicationController
layout 'admin'
active_scaffold
#Si hay archivos para subir cuando se crea o cuando se modifica la carrera
los toma
# los lee los graba y los descarta
def save_data_if_exist (record)
# toma el archivo de clasificaciones
unless record.first_file_raw.nil?
@data = IO.readlines(record.first_file_raw)
@data.delete_at(0)
@data.each do |line|
record.classifications.build Classification.csvrow_to_hash
line.split("\t")
end
record.classifications.each{|c|c.save(false)}
# descarto el archivo
record.first_file_raw = nil
end
# fin primera clasificaciones
# toma el archivo de resultados
unless record.second_file_raw.nil?
@data = IO.readlines(record.second_file_raw)
@data.delete_at(0)
@data.each do |line|
record.first_results.build FirstResult.csvrow_to_hash line.split
("\t")
end
record.first_results.each{|c|c.save(false)}
record.second_file_raw = nil
end
# fin resultados
def before_create_save(record)
save_data_if_exist record
end
def before_update_save(record)
save_data_if_exist record
end
end
Muchas gracias por la ayuda !
Saludos
Martin
On 11/2/07, Emmanuel Oga <[EMAIL PROTECTED]> wrote:
>
> Martin, no entendi muy bien que queres lograr. Estas subiendo un archivo a
> tu aplicacion usando un form? que son los "atributos del controlador" ?
>
>
>
> *Martin Aceto <[EMAIL PROTECTED]>* escribió:
>
> Hola de nuevo a todos, sigo con mi problematica de importar esos archivos
> a mi DB, pero ahora mi consulta es diferente. Ya tengo la rutina que me arma
> el hash del archivo, eso quedo bien, ahora estoy en el contraldor donde
> necesito hacer el upload, leerlo, grabar los datos y descartarlo. Mis
> modelos son los siguientes
>
> Race
> has_many :classifitacions
> has_many :results
>
> Classification
> belongs_to :race
>
> Result
> belongs_to :race
>
> y en mi controlador races_controller tengo
>
> # configuracion de active_scaffold
> active_scaffold
>
>
> def save_data_if_exist(record)
> unless record.file_raw_data.nil?
>
> # le paso el hash a los atributos del controlador para
> clasificaciones
> ¿? aca esta mi duda
>
> record.file_raw_data = nil
> end
> end
>
> def before_create_save(record)
> save_data_if_exist record
> end
>
> def before_update_save(record)
> save_data_if_exist record
> end
>
>
> mi pregunta es como puedo decirle al controlador que tome los valores del
> hash y los inserte en race.classifitacions ?
>
> Gracias por la ayuda
> Martin
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
> ------------------------------
>
> Yahoo! Noticias
> Todo lo que tenés que saber sobre Elecciones Presidenciales 2007
> encontralo en Yahoo! Noticias.
> http://ar.news.yahoo.com/elecciones2007/
>
>
> _______________________________________________
> Ruby mailing list
> [email protected]
> http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar
>
>
_______________________________________________
Ruby mailing list
[email protected]
http://lista.rubyargentina.com.ar/listinfo.cgi/ruby-rubyargentina.com.ar