这是我的代码,它创建了一个包含20个项目的列表,我想将它分成2个10项列表,一次只显示一个列表。我怎么才能在红宝石上做到这一点?
def list_dogs
counter = 0
if counter <= 10
Dogs::DogsPopularity.all.each do |dog|
puts "#{counter +=1}. #{dog.name}"
#binding.pry
end
elsif counter > 10 && counter <= 20
Dogs::DogsPopularity.all.each do |dog|
puts "#{counter +=1}. #{dog.name}"
# binding.pry
end
end
#binding.pry
end这就是它打印出来的..。
发布于 2018-03-26 23:51:26
我们必须假设您的类/模块返回20条狗,如果是这样的话:
def list_dogs
Dogs::DogsPopularity.all.each_slice(10).each do |dog_arr|
dog_arr.each_with_index do |dog, i|
puts "#{i+1}. #{dog.name}"
end
end
end要确保这在基本数组上有效,请参见:
[*1..100].each_slice(10).each_with_index{|arr, i| puts "#{i+1}: #{arr}"}https://stackoverflow.com/questions/49502261
复制相似问题