Buenas, tengo una pequeña duda, a ver si alguien me puede echar una
mano:
Tengo la siguiente sentencia:
<% @homes = Home.find(:all, :conditions => [“type_id = ? AND
habitaciones >= ? AND location_id = ? AND lavabos >= ?”, @cerca.type_id,
@cerca.habitaciones, @cerca.location_id, @cerca.lavabos]) %>
Y ahora tengo que listar el resultado de @homes, por lo que hago un:
<% for @home in @homes %>
Hasta aquà todo funciona, pero me gustarÃa controlar que realmente hay
alguna @home en @homes, con lo que se me ha ocurrido hacer un
<% if @homes.nil? %>
No hay resultados
<%else%>
Listar resultados
<%end%>
El problema es que @homes.nil no sucede nunca, aunque el Home.find no
devuelva ningun resutado con esas condiciones…
Alguien me puede echar una mano y decirme com saber si @homes esta
vacÃo?
Muchas grácias, espero haberme explicado.
Tenes que usar @homes.blank?
saludos,
Juan P…
On 9/10/07, David R. [email protected] wrote:
Listar resultados
<%end%>
Creo que buscás el método #blank? al cual responden varias de las
clases básicas de Ruby (siempre y cuando estés trabajando con Rails o
ActiveSupport)
<% if @homes.blank? %>
<% else %>
<% end %>
#blank? devuelve true cuando el receptor es nil o está “en blanco”:
para un Array, cuando está vacío; para un String, cuando no tiene
ningún caracter significativo.
irb(main):005:0> [].blank?
=> true
irb(main):006:0> “”.blank?
=> true
irb(main):007:0> " ".blank?
=> true
irb(main):008:0> [1].blank?
=> false
Saludos
o @homes.any? que en el caso de arreglos es un poco mas claro.
OK,
Siempre me sorprende Rails por las vueltas que le doy a las cosas y lo
senzillas que son en realidad… :S
Muchas grácias
Tengo la siguiente sentencia:
<% @homes = Home.find(:all, :conditions => [“type_id = ? AND
habitaciones >= ? AND location_id = ? AND lavabos >= ?”, @cerca.type_id,
@cerca.habitaciones, @cerca.location_id, @cerca.lavabos]) %>
Un consejo, no accedas a la base de datos desde la vista. Estaras
pasando por encima del MVC.
–
Pedro Del G.
Email : [email protected]