Я мигрирую с Rails 4 на Rails 5 и попал в эту проблему. У меня есть отношение hasMany
through
для соединения классов Track
и RightHolder
:
class RightHolder < ActiveRecord::Base
has_many :right_holder_tracks, class_name: 'TrackRightHolder', dependent: :delete_all
has_many :tracks, -> { uniq }, through: :right_holder_tracks
end
class TrackRightHolder < ActiveRecord::Base
belongs_to :track
belongs_to :right_holder
end
class Track < ActiveRecord::Base
has_many :track_right_holders, dependent: :destroy
has_many :right_holders, -> { uniq }, through: :track_right_holders
end
В Rails 4 это работало отлично, но в Rails 5, когда я пытаюсь получить:
Track.first.right_holders
RightHolder.first.tracks
Приложение Rails выполняет следующие запросы:
select * from right_holders
select * from tracks
Что я делаю не так? Это ошибка?