Я строю систему сопоставления между пользователями, изначально она имела и принадлежит многим ассоциациям, но из-за некоторых проверок и дополнительных данных, которые мне нужны для этой таблицы соединений, мне нужно иметь модель для нее и изменить ее на много через.
has_and_belongs_to_many(:likes,
class_name: :User,
join_table: :user_likes,
foreign_key: :user_liker_id,
association_foreign_key: :user_liked_id)
has_and_belongs_to_many(:likeds,
class_name: :User,
join_table: :user_likes,
foreign_key: :user_liked_id,
association_foreign_key: :user_liker_id)
Это старая реализация, которую нужно преобразовать в has_many через. Как видите, с помощью этого я могу получить всех пользователей, которые мне понравились, и пользователей, которые мне понравились. Я создал UserLike
модель, но у меня не получилось добиться того, чтобы она работала внутри пользовательской модели Я уже попробовал следующее:
user.rb
has_many :user_likes
has_many :likes, through: :user_likes, foreign_key: :user_liked_id
has_many :likeds, through: :user_likes, foreign_key: :user_liker_id
user_like.rb
class UserLike < ApplicationRecord
belongs_to :user
end
Эта реализация вызывает следующее исключение:
ActiveRecord :: HasManyThroughSourceAssociationNotFoundError: Не удалось найти ассоциацию (я) источника "like" или: likes в модели UserLike. Попробуйте 'has_many: likes,: through =>: user_likes,: source =>'. Это один из пользователей или user_likes?
Я не знаю, чего мне здесь не хватает, любая помощь будет оценена :)