【发布时间】:2012-03-24 12:31:43
【问题描述】:
有没有办法使用.each,这样它就不会在对象为 nil 或为空时引发错误(无需添加额外的 nil/blank 测试?
如果我说phonelist.each do |phone|,如果phonelist为空,那么该块不应该被执行。
但在我看来 (haml) 我有 - @myvar.phonelist.each do |phone|,如果 phonelist 为空,它会抛出 NoMethodError。
我经常遇到这种情况,并且总是通过为 .blank 添加显式检查/分支来解决?但似乎应该有一种更简单的方法来告诉 .each 空意味着什么都不做。
【问题讨论】:
-
在一个空的枚举上调用
each应该什么都不做。 -
@AndrewMarshall 但这不是正在发生的事情,他在
nil上打电话给each。 -
@AndrewMarshall:他的意思是
nil对象,而不是空集合。 -
是的。谢谢。愚蠢的虫子。辅助方法设置为 nil 而不是 []。感谢您的 cmets。
-
@jpwynn 用“SOLVED”编辑你的问题并给出解释并不是一个好主意。如果他们解决了问题,请接受其中一个答案,或者在解决方案中发布您自己的答案。
标签: ruby-on-rails ruby each