Konnte die inverse Zuordnung für has_many in Rails nicht finden 3

8

Ich habe folgende Modelle:

%Vor%

Doing business.customers funktioniert gut. Wenn ich jedoch business.payments mache, erhalte ich einen Fehler: Could not find the inverse association for business (:payment in Business) .

Ich bin mir nicht sicher warum. Ich habe die gleichen genauen Verbindungen in beide Richtungen. Meine schema.db sieht auch gut aus. Was könnte das Problem hier sein?

BEARBEITEN Wenn ich inverse_of => :business für has_many :payments entferne, funktioniert es. Warum passiert das? Kommt es darauf an, dass die Zahlung dem Kunden und dem Geschäft gehört (es sollte nicht wirklich wichtig sein, oder?)?

    
darksky 21.06.2013, 10:54
quelle

2 Antworten

15

Aktualisieren Sie das Zahlungsmodell mit diesem:

%Vor%

Sie haben erklärt

has_many :payments, :inverse_of => :business im Geschäftsmodell

Sie haben jedoch in Zahlung belongs_to :business, :inverse_of => :payment

verwendet

es sollte belongs_to :business, :inverse_of => :payments

sein     
Muntasim 21.06.2013, 11:00
quelle
0

Ihr Problem ist bei:

%Vor%

und at:

%Vor%

Die andere Seite von belongs_to ist has_many , was eine Pluralbeziehung definiert. Das heißt, inverse_of sollte customers anstelle von customer und payments anstelle von payment sein.

    
Idan Arye 21.06.2013 11:00
quelle