Ruby on rails 每个组件的配对顺序(2)
我有一个具有以下型号的Rails 5.1应用程序:Ruby on rails 每个组件的配对顺序(2),ruby-on-rails,ruby,rails-activerecord,Ruby On Rails,Ruby,Rails Activerecord,我有一个具有以下型号的Rails 5.1应用程序: class Game < ApplicationRecord has_and_belongs_to_many :players end class Player < ApplicationRecord has_and_belongs_to_many :games end 输出: players.first: 101088061, julia players.second: 132733334, clara players
class Game < ApplicationRecord
has_and_belongs_to_many :players
end
class Player < ApplicationRecord
has_and_belongs_to_many :games
end
输出:
players.first: 101088061, julia
players.second: 132733334, clara
players.last: 931424614, felix
<<each_cons>> one: 931424614, felix - two: 132733334, clara
<<each_cons>> one: 132733334, clara - two: 101088061, julia
players.first:101088061,朱莉娅
第二名:132733334,克拉拉
球员。最后:931424614,费利克斯
一号:931424614,费利克斯-二号:132733334,克拉拉
一号:132733334,克拉拉-二号:101088061,朱莉娅
我希望它能与
julia,clara
一起调用,然后与clara,felix
一起调用。这种颠倒顺序的原因可能是什么?当您调用玩家时。首先,
您可能会得到一个查询,该查询通过“玩家”选择具有顺序的玩家。“id”ASC LIMIT 1
当你调用second
时,你可能会得到“玩家”的订单。“id”ASC LIMIT 1 OFFSET 1
当您呼叫
玩家时
不会应用此命令
如果这不是您想要的行为,请定义:
@players = players.order(:id)
。。。然后是@players。第一个和@players。第二个将给出与您从@players
获得的顺序一致的值,因为您将使用第一个和第二个的数组实现
检查日志中的SQL语句以确保正确
@players = players.order(:id)