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

Responder a