gpt4 book ai didi

ruby-on-rails - Rails update_attributes 如果值存在,否则为 nil

转载 作者:行者123 更新时间:2023-12-05 07:21:04 25 4
gpt4 key购买 nike

On Rails 5.

我有一个带有 access_tokenexpires_at 属性的 Service 模型。

我正在发出 API 请求以获取访问 token 和过期时间,但是,在许多情况下 expires_at 不存在,在这种情况下我希望该值为 nil。

在我的 Controller 中,我正在做一些基本的事情,比如:

@service.update_attributes(
access_token: api_response["access_token"],
expires_at: Time.at(api_response["credentials"]["expires_at"])
)

如果 api 响应包含它,仅更新 expires_at 的正确方法是什么?

我正在考虑设置一个变量(如果存在的话):

if api_response["credentials"]["access_token"].present?
expiry = api_response["credentials"]["access_token"]
else
expiry = nil
end

然后像...一样更新

@service.update_attributes(expires_at: expiry)

但这似乎不是正确的做法。如果我需要从 api 响应中检查多个值,就会有很多额外的代码来检查是否存在。

Rails 的方法是什么?很难找到答案。

最佳答案

听起来你走在正确的 rails 上:

    @service.access_token = api_response["access_token"]
@service.expires_at = Time.at(api_response["credentials"]["expires_at"]) if api_response["credentials"]["expires_at"].present?
@service.save if @service.changed?

关于ruby-on-rails - Rails update_attributes 如果值存在,否则为 nil,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57117714/

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