mam następujące modele:Nie można odnaleźć Inverse Stowarzyszenie has_many w Rails 3
class Business < ActiveRecord::Base
has_many :customers, :inverse_of => :business
has_many :payments, :inverse_of => :business
end
class Customer < ActiveRecord::Base
belongs_to :business, :inverse_of => :customer
has_many :payments, :inverse_of => :customer
end
class Payment < ActiveRecord::Base
belongs_to :customer, :inverse_of => :payment
belongs_to :business, :inverse_of => :payment
end
Doing business.customers
działa dobrze. Jednak po otrzymaniu business.payments
pojawia się błąd: Could not find the inverse association for business (:payment in Business)
.
Nie jestem pewien, dlaczego. Mam te same dokładne skojarzenia w obie strony. Mój schema.db również wygląda dobrze. Co może być tutaj problemem?
EDIT Kiedy usunąć inverse_of => :business
dla has_many :payments
, to działa. Dlaczego to się dzieje? Czy jest to związane z tą płatnością, która należy do klienta i firmy (tak naprawdę nie powinno to mieć znaczenia, prawda?)?
prawda Aplikować odpowiednie komendy rake do aktualizacji skojarzeń w DB? – wandarkaf
@wandarkaf tak, db: migracja. Stowarzyszenia były tam od kiedy zrobiłem moją pierwszą migrację. Zobacz powyżej edycję. – darksky