6

簡単に言う方法はありますか?それ以外の場合、ループしているものがない場合は、「オブジェクトなし」と表示します。@ user.find_object( "param")の長さを計算するのではなく、これを行うための優れた構文上の方法があるはずです。

4

4 に答える 4

6

あなたは次のようなことをすることができます:

if @collection.blank?
  # @collection was empty
else
  @collection.each do |object|
    # Your iteration  logic
  end
end
于 2012-10-13T05:01:55.947 に答える
5

Railsビュー

# 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)が空のnil場合に戻ります。@products

ルビー

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
=> []
于 2012-10-13T05:36:25.843 に答える
0
if @array.present?
  @array.each do |content|
    #logic
  end
else
  #your message here
end
于 2012-10-13T05:05:24.643 に答える
0

私は次のことをします:

<% unless @collection.empty? %>
<% @collection.each do |object| %>
    # Your iteration  logic
  <% end %>
<% end %>
于 2014-07-10T16:51:12.040 に答える