tutorial rails que ejemplos descargar curso caracteristicas ruby-on-rails ruby ruby-on-rails-3 arel

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)