Có cách dễ dàng để nói: nếu không có gì lặp lại, hãy hiển thị 'Không có đối tượng'. Có vẻ như không nên có một cách cú pháp tốt đẹp để làm điều này chứ không phải là tính toán độ dài của @ user.find_object ("param")Trong một vòng lặp Ruby on Rails, có cách nào tốt để làm điều gì đó nếu không có gì được lặp lại không?
6
A
Trả lời
6
Bạn có thể làm một cái gì đó như:
if @collection.blank?
# @collection was empty
else
@collection.each do |object|
# Your iteration logic
end
end
+3
đây là cách bình thường mặc dù dài dòng để làm điều đó. Lưu ý rằng 'blank?' Có thể đổ bóng một số vấn đề (giá trị không nên là 'nil'),' empty? 'Là cụ thể hơn. – tokland
0
if @array.present?
@array.each do |content|
#logic
end
else
#your message here
end
5
Rails xem
# 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)
sẽ trở lại nil
khi @products
trống.
của 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
tôi làm như sau:
<% unless @collection.empty? %>
<% @collection.each do |object| %>
# Your iteration logic
<% end %>
<% end %>
Các vấn đề liên quan
- 1. Điều gì: điều này có nghĩa trong Ruby on Rails?
- 2. sre_constants.error là gì: không có gì để lặp lại
- 3. Javascript + Regex = Không có gì để lặp lại lỗi?
- 4. Ruby on Rails - after_validation nếu hợp lệ?
- 5. preg_match: không có gì để lặp lại/không phù hợp
- 6. Cách tốt nhất để thực thi mã điều khiển Xuân lặp đi lặp lại là gì?
- 7. lắp không có vòng lặp
- 8. Có cách nào để làm điều gì đó như máy chủ rails --sandbox không?
- 9. làm thế nào để bỏ qua một vài lần lặp trong một vòng lặp trong Ruby?
- 10. có vòng lặp và vòng lặp trong con rối không?
- 11. lặp lại một vòng lặp cho vòng lặp
- 12. Làm thế nào để sử dụng vòng lặp foreach, nhưng làm điều gì đó khác biệt trong lần lặp lại cuối cùng?
- 13. Ruby on Rails: biểu tượng => có nghĩa là gì?
- 14. Ruby on Rails: có điều kiện hiển thị một phần
- 15. vòng lặp có điều kiện trong mustache.js
- 16. Có tốt hơn khi sử dụng lại một StringBuilder trong một vòng lặp không?
- 17. Vòng lặp for không lặp
- 18. Trong Ruby on Rails, "tài nguyên" có nghĩa là gì?
- 19. Hãy thử bắt cuối cùng: Làm điều gì đó nếu không có ngoại lệ được ném
- 20. Có điều gì đó giống như bpython cho Ruby không?
- 21. Xóa sạch mọi vòng lặp lặp lại. Cách hiệu quả nhất của bộ nhớ là gì?
- 22. Cách tốt nhất để đạt được Vòng lặp vô hạn song song là gì?
- 23. Có viết tắt hay không (nếu không có) tuyên bố trong Ruby on Rails?
- 24. Làm thế nào để khởi tạo một mảng để một cái gì đó trong C mà không có một vòng lặp?
- 25. Ruby on Rails: Có cách nào để tạo các biểu mẫu trống điền không?
- 26. Làm cách nào để xây dựng một vòng lặp trong R trong đó tôi có thể muốn lặp lại 0 lần?
- 27. Lặp lại ngẫu nhiên trong vòng lặp
- 28. Làm cách nào để kiểm tra xem có điều gì đó bị ẩn với jQuery không?
- 29. lại chạy một vòng lặp
- 30. Vòng lặp có bị hỏng không?
Cách tốt nhất mà tôi tìm thấy (và yêu) là câu trả lời từ @ fernando-allen: http://stackoverflow.com/a/2977478/757850 –