我试图通过arr。
中的值来安排@plrdet当我选择这种方式时:
@plrdet = Player.find_all_by_fid(arr)
它按照表中行的顺序返回,我希望按arr的顺序排序。
例如: 播放器包含以下属性:地址,年龄,uniqnum。
和
arr
是uniqnum的数组。
ARR = [ 456 , 123 ,789]
玩家= [{NYC,32123},{BSAS,27456},{LND,30789})
我要找的结果应该来自“find_all” 玩家= [{BSAS,27,的 456 },{NYC,32, 123 },{LND,30789})
答案 0 :(得分:1)
如果我理解这个问题,我会尝试这样的事情:
哈希版本
players = [{}]
@plrdet.each do |player|
players << {"adress" => player.adress, "age" => player.age, "fid" => player.fid}
end
players.inspect
现在结果应为[{“adress”=&gt; BSAS,“年龄”=&gt; 27,“fid”=&gt; 456},{“adress”=&gt;纽约,“年龄”=&gt; 32,“fid”=&gt; 123},{“adress”=&gt; LND,“年龄”=&gt; 30,“fid”=&gt; 789}]
数据版
players = [[]]
@plrdet.each do |player|
players << [player.adress, player.age, player.fid]
end
现在的结果应该是[[BSAS,27,456],[NYC,32,123],[LND,30,789]]
<强>排序强>
我认为这个解决方案应该可行,但我不喜欢它,并且可能有更好的方法来解决您的问题:
sorted_players = [[]]
arr.each do |arr_fid|
sorted_players << players.collect{|player| player if player.include?(arr_fid)}
end
答案 1 :(得分:0)