在Rails 5中。
我有一个具有access_token
和expires_at
属性的服务模型。
我正在进行API请求以获取访问令牌和过期时间,然而,在许多情况下,expires_at
不存在,在这种情况下,我希望该值为nil。
在我的控制器中,我做了一些基本的操作:
@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中,正确的做法是什么?我找不到答案。