我正在创建一个与Twitter相关的网络服务。因此Twitter API在其中的许多方面被调用。
我知道rescue Twitter::Error::TooManyRequests
可以处理速率限制错误。
但要在每个地方写begin
和rescue
语法都不会有什么麻烦且容易出错。
当错误发生时,我想在视图中显示错误消息,并使twitter请求方法返回nil
。
我正在使用twitter gem并像这样使用。
# app/models/user.rb
def twitter
@twitter ||= Twitter::Client.new(oauth_token: access_token, oauth_token_secret: access_secret)
end
我该如何实施?
除此之外,只有我想到的是,如果有更好的方式我会遵循指示。
答案 0 :(得分:0)
拯救错误并在方法中返回nil:
# app/models/user.rb
def twitter
@twitter ||= Twitter::Client.new(oauth_token: access_token, oauth_token_secret: access_secret)
rescue Twitter::Error::TooManyRequests
nil
end
现在,当您的错误发生时,方法本身将返回nil。
然后在你的控制器中,你可以设置flash如果twitter方法返回nil(你也可以选择比nil更具描述性的东西)。