私の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
数を確認します。items
invoice
<p>No. of items: <%= @invoice.items.length %></p>
私の問題は、0が表示されるはずの場所に1が表示されることです (上記のコントローラー アクションの 2 行目をコメントアウトしたことに注意してください)。new
これがなぜなのか、誰か説明してもらえますか?
それは私にあらゆる種類のトラブルを引き起こしています。
助けてくれてありがとう。