我正在创建一个rails应用程序,用于检查用户是否在spotify上关注艺术家。我有以下代码来检查是否是这种情况。
def personalise(acts)
acts_with_rank = acts.collect{|act|{:value => rank(act), :label => act.name}}
end
def rank(act)
spotify_user = RSpotify::User.new(request.env['omniauth.auth'])
artist = RSpotify::Artist.search(act.name).first
binding.remote_pry
if spotify_user.follows?(artist)
10
else
0
end
end
问题是,无论用户是否真正关注艺术家,每个行为最终都会以哈希值作为其值。我正在使用remote-pry来检查if语句的每次迭代是否返回true或false,虽然它正确地返回true或false,具体取决于用户是否跟随艺术家,但似乎还有其他东西if语句返回0.任何帮助都会受到赞赏,因为我确信我只是在看这个太长时间而且看不到我做过的蠢事!
答案 0 :(得分:0)
只是弄清楚出了什么问题
spotify_user.follows?(artist)
返回一个布隆的数组,来访问这里感兴趣的布尔值,简单的解决方法是:
if spotify_user.follows?(artist)[0]
10
else
0
end