ruby-on-rails - que - ruby on rails tutorial
¿Cómo se puede hacer una cláusula conditional where usando AREL? (2)
Es posible encadenar donde las declaraciones
residentials = Residential.where(:is_active => true)
residentials = residentials.where(:other_thing => true) if param_was_passed
Esto debería funcionar.
Asegúrese de que esta no sea la última línea en una llamada a función; repita la variable de los residentials
como la última línea en ese caso. (Según el comentario de @ digger69)
¿Cómo se puede hacer una cláusula where condicional? Tengo una tarea de rake que ejecuta una consulta. Digamos que estoy creando una consulta como esta:
residentials = Residential.where(:is_active => true)
Ahora si paso un cierto parámetro a la tarea de rake, quiero agregar a la cláusula where. Estaba pensando algo como esto:
residentials.where(:something_else => true) if param_was_passed
Pero eso simplemente reemplaza la cláusula where existente. ¿Cómo puedo agregarlo a las cláusulas Where existentes?
Puede construir el hash y luego proporcionarlo al método .where
. Algo como:
h = { }
h[:is_active] = true
h[:field_x] = true if param_was_passed
residentials = Residential.where(h)