0

私のRailsアプリケーションにはinvoices、多くのものを持つことができるものがありますitems:

class Invoice < ActiveRecord::Base

  attr_accessible :number, :items_attributes # some omitted for brevity

  has_many :items

  accepts_nested_attributes_for :items, :reject_if => :all_blank

  def build_item(user)
    items.build(
      :price    => default_item_price(user), 
      :tax_rate => user.tax_rate
    )
  end

  private

    def real_hourly_rate
      project.real_hourly_rate if project.present?
    end

    def default_item_price(user)
      real_hourly_rate || user.hourly_rate
    end

end

class InvoicesController < ApplicationController

  def new
    @invoice = current_user.invoices.build(:number => current_user.next_invoice_number)
    #@invoice.build_item(current_user)
  end 

end

フォームのすぐ下に、次の行を配置して、 new でインスタンス化されるviews/invoices/new.html.erb数を確認します。itemsinvoice

<p>No. of items: <%= @invoice.items.length %></p>

私の問題は、0が表示されるはずの場所に1が表示されることです (上記のコントローラー アクションの 2 行目をコメントアウトしたことに注意してください)。new

これがなぜなのか、誰か説明してもらえますか?

それは私にあらゆる種類のトラブルを引き起こしています。

助けてくれてありがとう。

4

1 に答える 1