Вы не хотите использовать has_and_belongs_to_many
в первую очередь.has_and_belongs_to_many
отношения безголовы - модели объединения нет.Единственные столбцы, которые когда-либо использовались в соединительной таблице, - это два внешних ключа.Даже если вы добавили столбец created_at
в таблицу соединений, нет способа получить к нему доступ или использовать его для упорядочения записей.И AR все равно не установит временные метки.
Хотя вы можете предположить, что ассоциация has_and_belongs_to_many упорядочена в том же порядке, что и вставленные записи, вы не можете упорядочить ее.
Вы хотите использовать has_many through:
, который использует модель для объединения двух записей:
class User < ApplicationRecord
has_many :user_matches
has_many :matches, through: :user_matches
end
class Match < ApplicationRecord
has_many :user_matches
has_many :users, through: :user_matches
end
class UserMatch < ApplicationRecord
belongs_to :user
belongs_to :match
end
Затем вы можете заказать ассоциацию:
match.users.order("user_matches.created_at DESC")