Tengo esta búsqueda en Rails 3:
Note.where(:user_id => current_user.id, :notetype => p[:note_type], :date => p[:date]).order('date ASC, created_at ASC')
Pero necesito la :date => p[:date]condición para ser equitativo :date > p[:date]. ¿Cómo puedo hacer esto? Gracias por leer.

where(). El usowhere()escapa automáticamente a la entrada.where()se escapa automáticamente de la entrada cuando se usa en el formato que se muestra arriba con signos de interrogación en lugar de variables, que se enumeran después en la llamada a la función. NO es seguro usarlo de esta manera:Note.where("date > #{p[:date]}")where("user_id = ?",current_user.id)es más riesgoso quewhere(user_id: current_user.id)en los casos en que fusiona modelos que tienen unuser_idcampo. El uso de los medios primas notación SQL que necesita para incluir la tabla aclaraciones por sí mismo, por ejemplo:where("notes.user_id = ?",current_user.id).Si encuentra problemas donde los nombres de columna son ambiguos, puede hacer:
fuente
Puedes intentar usar:
equivalente en sql
El resultado es:
Y yo también he cambiado
por
fuente
Rails 6.1 agregó una nueva 'sintaxis' para operadores de comparación en
wherecondiciones, por ejemplo:Entonces su consulta puede reescribirse de la siguiente manera:
Aquí hay un enlace a relaciones públicas donde puede encontrar más ejemplos.
fuente