Ich habe ein Problem mit einer has_many durch Zuordnung.rails has_many: durch die Assoziation funktioniert nicht
Ich habe ein Konto Modell, das viele Büros und Hotels account.rb hat:
class Account < ActiveRecord::Base
# associations
has_many :partnerships, through: :hotels, dependent: :destroy
has_many :partnerships, through: :offices, dependent: :destroy
has_many :users, through: :hotels, dependent: :destroy
has_many :hotels, dependent: :destroy
has_many :offices, dependent: :destroy
belongs_to :admin, class_name: "User", foreign_key: "admin_user_id", dependent: :destroy
dann habe ich eine Tabelle, die Partnerschaften eine zwischen Hotel und Büros Join-Tabelle sowohl Hotel- und Büro so viele haben, ist Partnerschaften:
class Hotel < ActiveRecord::Base
has_many :partnerships
belongs_to :account
has_and_belongs_to_many :user
class Office < ActiveRecord::Base
belongs_to :account
has_and_belongs_to_many :users
has_many :partnerships
und mein Partnerschaftsmodell schließlich:
class Partnership < ActiveRecord::Base
belongs_to :hotel
belongs_to :office
Aber wenn ich die Verbindung zwischen Konto und Partnerschaft mit einem Konto, das Hotels mit Partnerschaften (@account.partnerships
) hat testen, bekomme ich eine leere [], während wenn ich direkt das entsprechende Hotel (@hotel.partnerships
), ich meine relevante Liste Partnerschaften.
Können Sie mir sagen, warum diese Verbände nicht arbeiten:
has_many :partnerships, through: :hotels, dependent: :destroy
has_many :partnerships, through: :offices, dependent: :destroy