Hay una manera fácil de decir: si no, si no había nada en bucle, mostrar 'No objects'. Parece que debe haber una forma sintáctica agradable de hacer esto en lugar de calcular la longitud de @ user.find_object ("parámetro")En un bucle de Ruby on Rails, ¿hay alguna manera de hacer algo si no se itera nada?
6
A
Respuesta
6
Usted puede hacer algo como:
if @collection.blank?
# @collection was empty
else
@collection.each do |object|
# Your iteration logic
end
end
+3
esta es la manera normal aunque prolija de hacerlo. Tenga en cuenta que 'blank?' Puede sombrear algunos problemas (el valor no debe ser 'nil'),' empty? 'Es más específico. – tokland
0
if @array.present?
@array.each do |content|
#logic
end
else
#your message here
end
5
rieles ver
# index.html.erb
<h1>Products</h1>
<%= render(@products) || content_tag(:p, 'There are no products available.') %>
# Equivalent to `render :partial => "product", @collection => @products
render(@products)
volverá nil
cuando @products
está vacía.
Rubí
puts "no objects" if @collection.blank?
@collection.each do |item|
# do something
end
# You *could* wrap this up in a method if you *really* wanted to:
def each_else(list, message)
puts message if list.empty?
list.each { |i| yield i }
end
a = [1, 2, 3]
each_else(a, "no objects") do |item|
puts item
end
1
2
3
=> [1, 2, 3]
each_else([], "no objects") do |item|
puts item
end
no objects
=> []
0
hago lo siguiente:
<% unless @collection.empty? %>
<% @collection.each do |object| %>
# Your iteration logic
<% end %>
<% end %>
Cuestiones relacionadas
- 1. Si tengo un hash en Ruby on Rails, ¿hay alguna manera de hacerlo indiferente?
- 2. Ruby on Rails: ¿Hay alguna manera de hacer que los formularios en blanco entren nulos?
- 3. ¿Hay alguna prueba para Ruby on Rails?
- 4. ¿Cómo se itera sobre objetos de registro activos en Ruby On Rails?
- 5. ¿Hay algo como MAMP para Ruby on Rails?
- 6. ¿Hay alguna manera de hacer algo como esto en C#?
- 7. ¿Hay alguna manera de probar devoluciones de llamada `before_validation` con un argumento`: on` en Rails?
- 8. Haga algo si no se encuentra nada con .find() mangosta
- 9. ¿Alguna Xampp Like For Ruby On Rails?
- 10. Ruby on Rails: mostrar condicionalmente un
- 11. ¿Hay alguna manera elegante de hacer algo con el último elemento de un bucle for-each en Java?
- 12. ¿Hay un rastreador de torrents basado en Ruby on Rails?
- 13. Ruby on Rails CoffeeScript no
- 14. ¿Hay alguna forma de ejecutar las aplicaciones de Ruby on Rails en una caja de Windows?
- 15. No escapes html en ruby on rails
- 16. Usos de Ruby on Rails
- 17. Ruby vs. Ruby on Rails
- 18. ¿Hay un archivo de Ruby on Rails layouts/css?
- 19. Ruby on Rails 3 y cómo hacer un servicio web
- 20. ¿Hay alguna manera de tener paralelo para cada bucle?
- 21. Ruby on Rails field average?
- 22. ¿Se modeló CakePHP después de Ruby on Rails?
- 23. Intellisense para Ruby, Ruby on Rails, Python
- 24. Ruby on rails "No coincide la ruta"
- 25. Desarrollo de Ruby on Rails en Windows
- 26. Ruby on Rails en IIS?
- 27. SSL con Ruby on Rails
- 28. Carga de archivos en Ruby on Rails
- 29. Colas de mensajes en Ruby on Rails
- 30. Ruby on Rails: ¿la mejor manera de comparar dos fechas?
La mejor manera que he encontrado (y amado) es la respuesta de @ fernando-Allen: http://stackoverflow.com/a/2977478/757850 –