gpt4 book ai didi

ruby-on-rails - 如何在 nil 上运行第一个方法?

转载 作者:太空宇宙 更新时间:2023-11-03 17:20:57 27 4
gpt4 key购买 nike

抱歉,我实在想不通:

class Customer < ActiveRecord::Base

def self.first_one
order(:created_at).first.id
end

end

如果数据库中有客户,上面的函数返回第一个客户的 id

但如果没有,它会给我一个错误,因为 id 不能在 nil 上运行。

谁能告诉我如何更改函数以使其返回 nil,即使数据库中没有任何客户也是如此?

感谢您的帮助。

最佳答案

当在 nil 上调用某些内容时,您始终可以使用 :try 来避免错误

order(:created_at).first.try(:id)

这将返回 nil 即使 order(:created_at).first 是 nil 它也不会抛出任何错误

编辑

如@Ursus 所建议,如果您使用的是 ruby​​ 2.3.0 及更高版本,您还可以将方法与 & 链接起来

# >= Ruby 2.3.0 
order(:created_at).first&.id

关于ruby-on-rails - 如何在 nil 上运行第一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42343917/

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