tôi có các mô hình sau:Không thể Tìm Hội Inverse cho has_many trong 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
Làm business.customers
hoạt động tốt. Tuy nhiên, khi tôi làm business.payments
Tôi gặp lỗi: Could not find the inverse association for business (:payment in Business)
.
Tôi không chắc chắn lý do tại sao. Tôi có cùng một hiệp hội chính xác cả hai cách. Schema.db của tôi cũng có vẻ ổn. Điều gì có thể là vấn đề ở đây?
EDIT Khi tôi xóa inverse_of => :business
cho has_many :payments
, nó hoạt động. Lý do tại sao điều này xảy ra? Có liên quan đến việc thanh toán đó thuộc về khách hàng và doanh nghiệp (nó không thực sự quan trọng, phải không?)?
đã làm bạn áp dụng lệnh cào thích hợp để cập nhật các liên kết trong DB? – wandarkaf
@wandarkaf có, db: di chuyển. Các hiệp hội đã có từ khi tôi đã di chuyển đầu tiên của tôi. Vui lòng xem phần chỉnh sửa ở trên. – darksky