1
class Bill < ActiveRecord::Base
has_many :invoices
end
class Invoice < ActiveRecord::Base
belongs_to :bill
end
然後在我的形式,我有發票幾個領域都具有名稱bill[invoice_names][]
,所以我可以從params[:bill][:invoice_names]
訪問它們。保存的has_many記錄上創建belongs_to的記錄
目前,我已經有了這樣的方法對我的比爾型號:
#bill.rb
def save_invoices(invoices)
if invoices
invoices.each do |invoice|
@invoice = Invoice.new
@invoice.invoice = invoice
@invoice.bill_id = self.id
@invoice.save
end
end
end
然後調用它bills_controller的像這樣的創建方法:
#bill_controller.rb
def create
@bill = Bill.new(params[:bill])
respond_to do |format|
if @bill.save
@bill.save_invoices(params[:bill][:invoice_names])
flash[:notice] = 'Bill was successfully created.'
# ...
else
# ...
end
end
end
由於導軌是通常不可思議,我嘗試命名字段bill[invoices][]
,並且交叉着我的手指,希望它可以在沒有額外代碼的情況下同時創建這些記錄。它沒有工作,所以我寫了save_invoices
方法,並且必須將字段重命名爲bill[invoices][]
以外的內容,因爲這給了我一個錯誤。
有沒有更好的方法來做到這一點?
是的......謝謝。 – 2009-10-08 06:03:57