我和考拉一起工作。我必须检查用户为该应用程序授予的权限。我做了一个名为facebook帮手的帮手。有一个def has_permission?(perm)
。我的代码如下:
def has_permission? (perm)
@graph = Koala::Facebook::API.new(current_user.token)
@permissions = @graph.get_connections('me', 'permissions')
@bool = false
@permissions.each do |p|
if p[0] == perm && p[1] == 'granted'
@bool = true
break
end
end
return @bool
end
它总是返回false。这有什么问题?
答案 0 :(得分:1)
您的@permissions是否已填充?您也可以在没有break
def has_permission? (perm)
@graph = Koala::Facebook::API.new(current_user.token)
@permissions = @graph.get_connections('me', 'permissions')
@bool = false
@permissions.each do |p|
unless @bool
@bool = (p[0] == perm && p[1] == 'granted')
end
end
@bool
end
我还会将p[0] == perm && p[1] == 'granted'
移动到自己的方法中以提高可读性。
答案 1 :(得分:0)
我自己解决了这个问题:
def has_permission? (perm)
@graph = Koala::Facebook::API.new(current_user.token)
@permissions = @graph.get_connections('me', 'permissions')
# binding.pry
@bool = false
@permissions.each do |p|
if (p['permission'] == perm && p['status'] == 'granted')
@bool = true
break
end
end
@bool
end
刚刚将p[0]
更改为p['permission']
,将p[1]
更改为p['status']