Ich habe folgendes has_many: durch Situation:has_many: durch nur in einer Richtung arbeiten
class User < ApplicationRecord
has_many :term_enrollments, foreign_key: 'builder_id'
has_many :terms, through: :term_enrollments
end
class TermEnrollment < ApplicationRecord
belongs_to :term
belongs_to :builder, class_name: 'User'
end
class Term < ApplicationRecord
has_many :builder_term_enrollments, class_name: 'TermEnrollment', foreign_key: 'builder_id'
has_many :builders, through: :builder_term_enrollments, source: :builder
end
Die folgende schafft erfolgreich ein term_enrollment:
u = User.first
t = Term.first
u.terms << t
dann kann ich u.terms
erfolgreich laufen. Das Problem ist, wenn ich t.builders
laufen, ich ein leeres Verein erhalten:
=> #<ActiveRecord::Associations::CollectionProxy []>
Ich bin ziemlich sicher, ich bin mit source
falsch, aber ich bin nicht sicher, wie. Wie behebe ich das?
ich ziemlich sicher bin, du bist nach 'inverse_of', nicht' source', bevölkerten die beiden Enden des Vereins zu haben – meagar