A TimeLog, Faturalanabilir veya Faturalandırılamaz ve bir Fatura birçok TimeLog içerir. Veritabanımızın null olmayan yabancı anahtarları olamaz, bu yüzden bir katılma modeli kullanıyoruz. Kod:has_one: yoluyla yapı_association sağlamaz
class TimeLog < ActiveRecord::Base
has_one :invoices_time_logs
has_one :invoice, through: :invoices_time_logs
end
class Invoice < ActiveRecord::Base
has_many :invoices_time_logss
has_many :time_logs, through: :invoices_time_logss
end
class InvoicesTimeLogs
belongs_to :invoice
belongs_to :time_log
end
Invoice.first.time_logs.build çalışıyor, ancak TimeLog.first.build_invoice build_association yöntemi kullanılabilir hale gerekiyordu has_one değil mi
verir?NoMethodError: undefined method `build_invoice' for #<TimeLog:0x4acd588>
Güncelleme: build_assocation_test: Bu soru için örnek bir repo yaptık
. , Repo klonlamak, sorun göremiyorum paket yüklemek, taşıma işlemini (veya şema yük) ve daha sonra bir raylar konsolunda için:
Invoice.create
Invoice.first.time_logs.build
TimeLog.create
TimeLog.first.build_invoice
DB'nizde en az 1 Timelog olduğunu doğrulayabilir misiniz? Veya tam NoMethodError hatası gönderin. –