Mysql 如何在rails中找到从数据库返回的记录数组的索引?
我正在从sql查询中获取记录数组,现在我想知道当前用户的记录是否存在于该记录数组中以及在哪个位置。所以我编写了以下查询,但它返回nullMysql 如何在rails中找到从数据库返回的记录数组的索引?,mysql,ruby-on-rails,arrays,Mysql,Ruby On Rails,Arrays,我正在从sql查询中获取记录数组,现在我想知道当前用户的记录是否存在于该记录数组中以及在哪个位置。所以我编写了以下查询,但它返回null @top_score_cards = Score.group(:points).distinct.order("points DESC, updated_at DESC").where("points != ? And activity_id= ?",0,params[:@myActivity])#.limit(3) @current_users_rank=@
@top_score_cards = Score.group(:points).distinct.order("points DESC, updated_at DESC").where("points != ? And activity_id= ?",0,params[:@myActivity])#.limit(3)
@current_users_rank=@top_score_cards.index(current_user)
puts @current_users_rank
你可以试试:
最高分卡。包括?(当前用户id)
您可以使用PULLC将数据库结果直接转换为数组。您上面的查询不包括任何用户信息,因此我只假设您的
用户
模型与分数
有某种关系
如果是这种情况,您的@current\u users\u rank
方法需要包含该关系值,而不是普通的current\u user
对象:
@current\u users\u rank=@top\u score\u cards.index(current\u user.score)
希望这有帮助