gpt4 book ai didi

ruby-on-rails - 如果为零,Rails 3.1 : Ruby idiom to prevent . 每个都从抛出异常?

转载 作者:数据小太阳 更新时间:2023-10-29 06:27:47 25 4
gpt4 key购买 nike

有没有一种方法可以使用 .each 以便在对象为 nil 或空时不会抛出错误(无需添加额外的 nil/空白测试?

似乎如果我说 phonelist.each do |phone| 如果 phonelist 为空,则不应执行该 block 。

但在我看来 (haml) 我有 - @myvar.phonelist.each do |phone| 如果电话列表为空,它会抛出一个 NoMethodError。

我经常遇到这个问题,并且总是通过为 .blank 添加显式检查/分支来解决这个问题?但似乎应该有一种更简单的方法来告诉 .each 空意味着什么都不做。

最佳答案

您可以使用 try在 nil 上调用 .each 的方法,因此如果对象为 nil 或为空,它不会抛出错误。

phonelist = nil
phonelist.try(:each){|i| puts i}

关于ruby-on-rails - 如果为零,Rails 3.1 : Ruby idiom to prevent . 每个都从抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9593705/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com