gpt4 book ai didi

ruby-on-rails - 检查 Rails/Ruby 中对象是否存在的正确方法是什么?

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

我有很多模型和关系。由于这个事实,在 View / Controller 中有很多调用,看起来像这样:

 @object.something.with_something.value 

链的某些部分最终可能为零,这完全没问题。检查终端对象是否存在的正确/干净/快速的方法是什么?

正在调用类似的东西:

 @object.something.with_something.value if defined? @object.something.with_something.value 

还可以吗?

最佳答案

在本地,您需要使用 && 运算符(不是 defined?),但这很快就会变得非常冗长。

所以不要这样做:

(@object && @object.something && @object.something.with_something &&
@object.something.with_something.value)

您可以在存在 ActiveSupport 时执行此操作:

@object.try(:something).try(:with_something).try(:value)

或安装 invocation construction kit并使用其 protected 评估工具:

Ick::Maybe.belongs_to YourClass
maybe(@object) { |obj| obj.something.with_something.value }

关于ruby-on-rails - 检查 Rails/Ruby 中对象是否存在的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4741262/

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