-1
我遇到與此代碼的ActiveRecord 3.2.8奇怪的錯誤:Activerecord 3.2.8關聯錯誤
我有2個模型 - 客戶和發票。
class Customer < ActiveRecord::Base
has_many :invoices
end
class Invoice < ActiveRecord::Base
belongs_to :customer
def self.last(customer)
customer.invoices.order("some_date_column DESC").first
end
end
我運行一個類似的代碼:
Thread.new do
ActiveRecord::Base.connection_pool.with_connection do
Customer.all.each do |customer|
invoice = Invoice.last(customer)
...
end
end
end
當運行代碼我有時會收到如下奇怪的錯誤:
/var/lib/gems/1.8/gems/activerecord-3.2.8/lib/active_record/associations/collection_association.rb:25:in 'initialize': wrong number of arguments (1 for 0) (ArgumentError)
from /var/lib/gems/1.8/gems/activerecord-3.2.8/lib/active_record/associations/collection_association.rb:25:in 'new'
from /var/lib/gems/1.8/gems/activerecord-3.2.8/lib/active_record/associations/collection_association.rb:25:in 'initialize'
from /var/lib/gems/1.8/gems/activerecord-3.2.8/lib/active_record/associations.rb:157:in 'new'
from /var/lib/gems/1.8/gems/activerecord-3.2.8/lib/active_record/associations.rb:157:in 'association'
from /var/lib/gems/1.8/gems/activerecord-3.2.8/lib/active_record/associations/builder/association.rb:44:in 'invoices'
from .../models/invoice.rb:7:in 'last'
任何幫助深表感謝。
謝謝,但您可以在方法定義中看到,Invoice.last方法應該只接受1個參數。調用new方法時,第25行的ActiveRecords的collection_association.rb文件中引發了ArgumentError。 – Igi