1

私のRailsアプリにはinvoices、多くのネストされたitems.

class Invoice < ActiveRecord::Base

  attr_accessible :date, :number, :items_attributes

  has_many :items

  accepts_nested_attributes_for :items

  def total
    items.map(&:total).sum
  end

end

実際にデータベースに保存されたものtotalのみが計算されることを確認するにはどうすればよいですか?items

現在、私のビューでインスタンス化されただけで、まだデータベースに保存されていないtotalインクルードも含まれています。itemsnew

ご協力いただきありがとうございます。

4

1 に答える 1

3
def total
  items(true).map(&:total).sum
end

はのtrueリロードを強制しitemsます。または:

def total
  items.select(&:persisted?).map(&:total).sum
end

persisted?is true、オブジェクトがデータベースにある場合 (新規ではなく、削除されていない)。

于 2013-10-07T13:12:44.397 に答える