Czy istnieje prosty sposób, aby powiedzieć: w przeciwnym razie, jeśli nie było nic zapętlonego, pokaż "Brak obiektów". Wygląda na to, że powinien być miły składniowej sposób to zrobić, zamiast obliczać długość @ user.find_object („parametr”)W Ruby on Rails każdej pętli, czy istnieje dobry sposób, aby coś zrobić, jeśli nic nie było iterowane?
6
A
Odpowiedz
6
można zrobić coś takiego:
if @collection.blank?
# @collection was empty
else
@collection.each do |object|
# Your iteration logic
end
end
+3
Jest to normalny, choć bardzo szczegółowy sposób na zrobienie tego. Zauważ, że 'puste?' Może cienieć niektóre problemy (wartość nie powinna być 'nil'),' puste? 'Jest bardziej szczegółowe. – tokland
0
if @array.present?
@array.each do |content|
#logic
end
else
#your message here
end
5
Szyny zobaczyć
# 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)
powróci nil
gdy @products
jest pusty.
Ruby
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
I wykonaj następujące czynności:
<% unless @collection.empty? %>
<% @collection.each do |object| %>
# Your iteration logic
<% end %>
<% end %>
Powiązane problemy
- 1. Czy istnieje coś takiego jak MAMP dla Ruby on Rails?
- 2. Ruby on Rails - after_validation, jeśli jest poprawna?
- 3. Czy istnieje sposób sprawdzenia wydajności polecenia w konsoli w Ruby on Rails?
- 4. Ruby vs. Ruby On Rails
- 5. Ruby on rails i Node.js
- 6. Tworzenie pomocnika lub coś dla haml z Ruby on Rails
- 7. Ruby on Rails on IIS?
- 8. Jak włączyć kompresję w Ruby on Rails?
- 9. Ruby on Rails: Jak sprawdzić, czy model istnieje
- 10. Konwersja projektu Ruby on Rails do projektu JRuby on Rails
- 11. Docsplit Ruby on Rails
- 12. Czy istnieje układ Ruby on Rails layouts/css?
- 13. Ruby on Rails: menu rozwijane
- 14. Narzędzia raportowania Ruby on Rails?
- 15. Przełącznik Ruby on Rails
- 16. Ruby on Rails: wybierz formularz
- 17. Jak wdrożyć witrynę [Ruby on Rails] w skalowalny sposób?
- 18. Pakiety Ruby on Rails downgrade
- 19. Jeśli jeden z dwóch elementów istnieje coś zrobić
- 20. Ruby on Rails I18n interpolation
- 21. Zrób coś, jeśli nic nie znalazłeś z .find() mongoose
- 22. Stowarzyszenie polimorficzne Ruby on Rails
- 23. Ruby on Rails before_filter vs initialized ruby
- 24. Ruby on Rails kontra Python
- 25. Czy istnieje prosty sposób, aby zrobić ScrollViewer "skoczny"?
- 26. Czy warto się nauczyć Ruby On Rails
- 27. Ruby on Rails 301 przekierowanie
- 28. Monit Ruby on Rails Sidekiq
- 29. Ruby on Rails Private Methods?
- 30. Ruby on Rails javascript_include_tag: domyślnie
Najlepszym sposobem znalazłem (i lubi) jest odpowiedź od @ fernando-Allen: http://stackoverflow.com/a/2977478/757850 –