我有這個類和這些方法在裏面。方法帶回空陣列
class Purchase < ActiveRecord::Base
belongs_to :user
belongs_to :price
belongs_to :unit_price
scope :today, lambda { joins(:unit_price, :price).
where(:prices => { :date => Date.today },
:unit_prices => { :date => Date.today }) }
# not working
def total
self.price.sum(:amount) + self.unit_price.sum(:amount)
end
end
當我嘗試使用我的作用域鏈是這樣的:
<%= current_user.purchases.today.map(&:total) %>
它給我的[]
空數組結果。我真的想做到這一點。
<%= number_to_currency(current_user.purchases.today.map(&:total)) %>
但是,這不起作用,要麼發生此錯誤。
undefined method `to_f' for []:Array
爲什麼它會回來空?
謝謝。
你怎麼會在'belongs_to'(1-關係)協會做了'sum'? – tokland 2012-08-17 17:52:42
'current_user.purchases.map(&:today).map(&:total)''怎麼辦? – Max 2012-08-17 17:58:03
我編輯了我的答案爲您的上一個問題http://stackoverflow.com/questions/11942377/method-gives-activerecordrelation-error/11995483 - 這是我的壞,我把'地圖'而不是'sum'。 Map返回數組,這就是爲什麼你得到數組。 – 2012-08-17 18:02:21