triptico tiempo tener situación relacionadas méxico mexico los linea internet instituciones implicaciones historia digitales derechos cuál con acceso ruby activerecord

ruby - tiempo - instituciones relacionadas con los derechos digitales



Registro activo: busca registros que se crearon antes de hoy (3)

Quiero obtener todos los registros donde el campo created_at es menor que el día de hoy (una fecha). ¿Hay algo como esto?

MyTable.find_by_created_at(< 2.days.ago)


Otra forma es crear un alcance en MyModel o en ApplicationRecord usando la interfaz Arel como tokland sugensted en su respuesta como sigue:

scope :arel, ->(column, predication, *args) { where(arel_table[column].public_send(predication, *args)) }

Ejemplo de uso del alcance:

MyModel.arel(:created_at, :lt, 2.days.ago)

Para todas las predicciones, verifique la documentation o el código fuente . Este alcance no rompe la cadena de where . Esto significa que también puedes hacer:

MyModel.custom_scope1.arel(:created_at, :lt, 2.days.ago).arel(:updated_at, :gt, 2.days.ago).custom_scope2


Time.now se refiere ahora o en este mismo segundo. Entonces, para encontrar todos los usuarios antes, solo use

@users = User.all

Esto encontrará todos los usuarios antes en este momento y excluirá a futuros usuarios o usuarios que se unen después de Time.now


Usando ActiveRecord la manera estándar:

MyModel.where("created_at < ?", 2.days.ago)

Usando la interfaz Arel subyacente:

MyModel.where(MyModel.arel_table[:created_at].lt(2.days.ago))

Usando una capa delgada sobre Arel:

MyModel.where(MyModel[:created_at] < 2.days.ago)

Usando squeel :

MyModel.where { created_at < 2.days.ago }