У меня проблема при настройке ассоциаций в моем проекте rails, и мне интересно, может ли кто-нибудь помочь мне с этим ??
У меня есть три модели: пользователь, комментарий и событие. И есть два типа пользователей: организация и волонтер. У меня проблема, когда я пытался заставить event.volunteers
и volunteer.joined_events
работать ... Вот как настраиваются модели:
class Comment < ApplicationRecord
belongs_to :organization, class_name: "User"
belongs_to :volunteer, class_name: "User"
belongs_to :event
end
class User < ApplicationRecord
has_many :organized_events, foreign_key: "organization_id", class_name: "Event"
has_many :joined_events, through: :being_commented_comments, :source => :event
has_many :commented_comments, foreign_key: "organization_id", class_name: "Comment"
has_many :being_commented_comments, foreign_key: "volunteer_id", class_name: "Comment"
end
class Event < ApplicationRecord
belongs_to :organization, class_name: "User"
has_many :volunteers, through: :comments, source: "Volunteer"
has_many :comments
end
И я продолжаю получать ошибки вроде:
ActiveRecord::HasManyThroughSourceAssociationNotFoundError (Could not find the source association(s) "Event" in model Comment. Try 'has_many :joined_events, :through => :being_commented_comments, :source => <name>'. Is it one of organization, volunteer, or event?)
или
ActiveRecord::HasManyThroughOrderError (Cannot have a has_many :through association 'User#joined_events' which goes through 'User#being_commented_comments' before the through association is defined.)
и я думаю, что проблема возникает из-за того, что я недостаточно знаком с :source
... Любые предложения будут очень признательны! Спасибо!