有没有办法让迭代器反正,即使对象是零也是如此?
例如,我想从我的应用程序中删除我的视图,并为设计师创建一个虚拟应用程序.
所以我希望它迭代或循环.
如何才能做到这一点?
我刚刚找到了一种方法
<%
(@messages.count == 0 ? Array.new(5).map { Message.new } : @messages.each).each do |m|
%>
Run Code Online (Sandbox Code Playgroud)
你应该可以使用这样的东西:
(@things || dummy_things).each do |thing|
# do something with thing
end
def dummy_things
dummies = []
5.times do
dummies.push(Thing.new)
end
dummies
end
Run Code Online (Sandbox Code Playgroud)
所以这样做是为了迭代虚拟事物,如果@things是nil,否则只是迭代@things.
如dummy_thingsVictor所述,更简洁的版本将是这样的:
def dummy_things
(0..4).map{ Thing.new }
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7706 次 |
| 最近记录: |