gpt4 book ai didi

ruby-on-rails - 返回前检查多个条件

转载 作者:太空宇宙 更新时间:2023-11-03 16:54:53 25 4
gpt4 key购买 nike

我想返回 mycollection.first.user.name,但是 mycollectionmycollection.first 可能为 nil。下面的代码很丑陋,但有效:

if mycollection && mycollection.first && mycollection.first.user
mycollection.first.user.name
end

什么是 Ruby 方式?

最佳答案

如果您碰巧在使用 Rails,它会向 Object 添加一个名为 try 的方法,这可能会有所帮助:

mycollection.try(:first).try(:user).try(:name)

这将依次调用 firstusername,但是如果链中的任何值是 nil ,它只会返回 nil 而不会抛出异常。

如果你不使用 Rails,你可以很容易地自己定义它:

class Object; def try(method,*args,&block); send(method,*args,&block); end end
class NilClass; def try(method,*args,&block); nil; end end

关于ruby-on-rails - 返回前检查多个条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12789509/

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