Я работаю над приложением для геокэшинга, в котором пользователи могут создавать новый кеш или посещать существующий. Вот модели:
class User < ApplicationRecord
has_many :usercaches
has_many :visited_caches, source: :caches, through: :usercaches
has_many :created_caches, class_name: :caches
end
class Cache < ApplicationRecord
has_many :usercaches
has_many :visitors, source: :users, through: :usercaches
end
class Usercache < ApplicationRecord
belongs_to :user
belongs_to :cache
end
Таблица соединений выглядит именно так, потому что я пытался устранить любые потенциальные ошибки, связанные с использованием заглавных букв или множественного числа. Всякий раз, когда я создаю консоль User in Rails и пытаюсь посмотреть new_user.visited_caches
, я получаю следующую ошибку:
ActiveRecord :: HasManyThroughSourceAssociationNotFoundError: не удалось найти исходную ассоциацию (и): кеши в модели Usercache. Попробуйте 'has_many: visit_caches,: through =>: usercaches,: source =>'. Это один из пользователей или кеш?
Однако, когда я переставляю ассоциацию, как было предложено, ошибка остается той же. Есть ли какая-то мелочь, которую мне не хватает, или я работаю с совершенно неправильной парадигмой того, чего я хочу достичь?