Find ":second"?

Buenas, me surge una duda:

Tengo una tabla que guarda los accesos a mi aplicación tal que así:

AUDITORIA:

id - login - created_at

1 - luis - 22/05/07 13:35
2 - luis - 22/05/07 13:38
3 - luis - 22/05/07 13:40
4 - luis - 22/05/07 13:45

Lo que hace es guardar cada acceso correcto que se hace a la aplicación.

Quiero que muestre el típico mensajito de “Tu último acceso fue el
22/05/07
a las 13:40” una vez que el usuario haga el login. Pero claro, la fecha
que
tendría que enseñar es la del registro on id 3.

Entonces, ¿hay alguna forma de sacar sólo un registro de la base de
datos,
pero que sea el 2º de los que yo quiero sin tener que ser tan retorcido
como
ésto?

(Auditoria.find :all, :order => “created_at DESC”, :limit =>
2,:conditions
=> ["login = ? ",self.login])[1]

Muchas gracias

Auditoria.find :all, :order => “created_at DESC”, :offset =>
1, :limit => 1, …

Y como te parece un poco retorcido (y estoy de acuerdo con eso), lo
mejor que puedes hacer es algo como:

class Auditoria
def self.find_second

end
end

Asi, lo retorcido queda escondido en un solo lugar, y el resto de tu
codigo se vera limpio, reluciente, y en particular, facilmente legible.

4 - luis - 22/05/07 13:45

Lo que hace es guardar cada acceso correcto que se hace a la aplicación.

Quiero que muestre el típico mensajito de “Tu último acceso fue el
22/05/07 a las 13:40” una vez que el usuario haga el login. Pero claro,
la fecha que tendría que enseñar es la del registro on id 3.

Entonces, ¿hay alguna forma de sacar sólo un registro de la base de datos,
pero que sea el 2º de los que yo quiero sin tener que ser tan retorcido
como ésto?

(Auditoria.find :all, :order => “created_at DESC”, :limit => 2,:conditions
=> ["login = ? ", self.login])[1]

Si hicieses una relacion has_many (algo asi):

#{RAILS_ROOT}/app/models/user.rb

class User < ActiveRecord::Base
has_many :logins, :order => ‘created_at DESC’
end

#{RAILS_ROOT}/app/models/login.rb

class Login < ActiveRecord::Base
belongs_to :user
end

Podrías hacer esto otro

a = User.find(condiciones)
a.logins[1]

Muy bien, muchas gracias a los dos.

La relación que me dices, César ya la tenía, pero lo que quería evitarme
era
la consulta a base de datos de varios registros, por temas de
rendimiento y
tal.

En cuanto a lo que me dices, Sebastián, de meterlo en el modelo, así lo
tenía. Cosas que se aprenden en la lista :wink:

Muchas gracias de nuevo