我怎样才能做出这样的......更紧凑?
def token
if authorized?
return t.token
else
raise Error('unauthorized!')
end
end
def secret
if authorized?
return t.secret
else
raise Error('unauthorized!')
end
end
目前感觉过度重复使用。
答案 0 :(得分:4)
添加一个在调用token或secret方法之前运行的过滤器。
before_filter :check_authorization, :only => [ :token, :secret ]
然后添加一个方法,检查用户是否已获得授权,
def check_authorization
if !authorized?
raise DropboxError('User is not authorized')
end
end
def token
@token
end
def secret
@secret
end
如果令牌和秘密已经是使用:attr_accessor
或类似内容定义的模型的属性,则可以完全取消令牌和秘密方法,因为它们是没有逻辑的简单getter。