gpt4 book ai didi

ruby-on-rails - rails 中是否内置了对默认值替换习惯用法的支持?

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

我经常编写代码以在遇到 nil/空值时提供默认值。

例如:

category = order.category || "Any"
# OR
category = order.category.empty? ? "Any" : order.category

我即将扩展 try 方法来处理这个习语。

category = order.try(:category, :on_nill => "Any")
# OR
category = order.try(:category, :on_empty=> "Any")

我想知道 Rails/Ruby 是否有一些方法来处理这个习惯用法?

注意:

我正在尝试消除 || 的重复/或/? 基于运算符的习语。

本质上,我正在寻找与 try 方法等效的方法来处理默认替换场景。

没有 try 方法:

product_id = user.orders.first.product_id unless user.orders.first.nil? 

使用try方法:

product_id = user.orders.first.try(:product_id)

很容易实现一个通用的方法来处理这个习语,但我想确保我没有重新发明轮子。

最佳答案

参见 this question . ActiveSupport 添加了一个 presence如果 present?(blank? 相反),则返回其接收器的所有对象的方法,否则为 nil

例子:

host = config[:host].presence || 'localhost'

关于ruby-on-rails - rails 中是否内置了对默认值替换习惯用法的支持?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3631766/

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