这里是我的方法:开始,随着API端点救援
def get_video_duration
@time ||= Panda.get("/videos/#{@video.panda_id}/metadata.json")["duration"]
format_duration
end
我需要写这个方法“好”与begin
包裹它,rescue
块,使@time
可能是零依赖于从响应API。
这里是我的方法:开始,随着API端点救援
def get_video_duration
@time ||= Panda.get("/videos/#{@video.panda_id}/metadata.json")["duration"]
format_duration
end
我需要写这个方法“好”与begin
包裹它,rescue
块,使@time
可能是零依赖于从响应API。
是的,可以使用内嵌rescue
条款。
或者更好地明确地做到这一点。
def get_video_duration
@time ||= Panda.get("/videos/#{@video.panda_id}/metadata.json")["duration"]
rescue YourException
@time = nil
format_duration
end
你毁了OP的逻辑。在原始问题中,尽管是否已经设置了,但在任何情况下都设置了“@ time”的懒惰实例化。 – mudasobwa
@mudasobwa如果这就是OP的意思,我会删除它。让我们等待OP回来并回应,这不是他想要的。 –
@ArupRakshit - 感谢您的帮助! '@ time'的懒惰实例是我的目标 – dennismonsewicz
也许有一个额外的方法把它分解:
def fetch_video_duration
Panda.get("/videos/#{@video.panda_id}/metadata.json")["duration"]
rescue
return nil
end
def get_video_duration
@time ||= fetch_video_duration
format_duration
end
你想执行'Panda.get'始终,或者只有当'@ time'是零/假? –