Last inserted id falla?

Hola, ando liado con un problema que no se como resolver y spero que
ustedes me puedan ayudar pronto.

Estoy haciendo un guardado multiple en BD recorriendo un ciclo, en cada
guardado me debe devolver el id con el que qued;o guardado para
insertarlo en la siguiente tabla.

El problema es que siempre me devuelve el primer id que se guardó

Este esel ciclo

value.each do |item|
if item.to_s != ‘’
log.error “debug post id " + param_name + " = " +
item.to_s
#parametros comunes
@time_entry = TimeEntry.new
userid = User.current.id.to_i
@time_entry.project_id = @sec
@time_entry.spent_on = current_date
@time_entry.created_on = current_date
@time_entry.updated_on = current_date
@time_entry.activity_id = 8 #valor fijo
@time_entry.tyear = time1.strftime(”%Y")
@time_entry.tmonth = time1.strftime("%m")
@time_entry.tweek =
Date.civil(@time_entry.tyear, @time_entry.tmonth,
time1.strftime("%d").to_i).cweek.to_s
@time_entry.user_id = userid

                 @time_entry.save

                 last_insert_id = @time_entry.id
             end

end

last_insert_id, siempre me devuelve el primero que guardó, que estoy
haciendo mal?

Les agradeceria una ayuda urgente.

Un saludo

No puedo ver porque last_insert_id siempre se devuelve el primero que
guardó, pero tengo algunas sugestiónes. Si TimeEntry es un ActiveRecord
model, hay updated_at y created_at en general. Probablemente quiere
verificar el resulto de @time_entry.save, y puede especificar todo la
información por TimeEntry.new como eso…

value.each do |item|
if item.to_s != ‘’
log.error “debug post id " + param_name + " = " +
item.to_s
#parametros comunes
tweek = Date.civil(@time_entry.tyear, @time_entry.tmonth,
time1.strftime(”%d").to_i).cweek.to_s;

    @time_entry = TimeEntry.new(:user_id => User.current.id,
            :project_id => @sec,
            :spent_on => current_date,
            :activity_id => 8,
            :tyear => time1.strftime("%Y"),
            :tmonth =>  time1.strftime("%m"),
            :tweek => tweek)
    if @time_entry.save
      last_insert_id = @time_entry.id
    else
      log.error  "..."
    end
end

end

Puede buscar la problema con last_insert_id con la addicíon de log.error
en el ciclo.

Espero de ayude,

Sarah

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs