rails one estructura else active ruby-on-rails activerecord if-statement

ruby-on-rails - one - ruby rails active record



Cómo especificar una condición menor que la actual en una fecha en el registro activo de rieles (2)

Dado que esto aparece primero en google, pensé que entraría. Probablemente sea mejor confiar en Arel en esta circunstancia.

expires = Announcement.arel_table[:expires] @announcements = Announcement.where(:publish => true) .where(expires.lt(Date.today))

Eso construirá la siguiente consulta SQL

-- Using Arel SELECT "announcements".* FROM "announcements" WHERE "announcements"."publish" = ''t'' AND ("announcements"."expires" < ''2016-02-03 18:41:26.454325'') -- Contrast that with the string binding method mentioned above SELECT "announcements".* FROM "announcements" WHERE (publish = ''t'' AND expires < ''2016-02-03 18:41:26.454325'')

Los nombres de las columnas están totalmente calificados, por lo que evitará conflictos al redactar otras consultas sobre este ActiveRecord :: Relation ie @announcements

Estoy tratando de encontrar la forma de extraer todos los registros en mi conjunto, donde sus campos "publicar" son verdaderos y "caducan" es menor que hoy. Tengo lo siguiente, pero no creo que funcione menos de la pieza, ¿puede alguien indicarme el camino correcto?

@announcements = Announcement.where(:publish => true, :expires < Date.today)

Gracias de antemano por tu ayuda


Prueba esto:

@announcements = Announcement.where("publish = ? AND expires < ?", true, Date.today)