我正在创建一个与Twitter相关的web服务。所以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
我怎样才能实现这样的功能?
此外,这只是我想到的,如果有更好的方法,我会按照指示去做。
只需挽救错误并在方法中返回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。
然后在你的控制器中,如果twitter方法返回nil,你可以设置flash(你也可以选择比nil更具描述性的东西)。