我有一个表格用于创建一个invoice
带有许多items
.
class Invoice < ActiveRecord::Base
attr_accessible :project_id, :number, :date, :recipient, :items_attributes
accepts_nested_attributes_for :items
end
现在,当我实例化一个 newinvoice
和一组 contains时items
,我希望它们在保存之前items
就知道它们所属的内容invoice
,因此我可以在我的Item
模型中执行以下操作:
class Item < ActiveRecord::Base
belongs_to :invoice
after_initialize :set_hourly_rate
private
def set_hourly_rate
if new_record?
self.price ||= invoice.project.hourly_rate
end
end
end
现在,我的代码失败了,因为子 ( ) 在实例化期间item
对其父 ( ) 一无所知。invoice
只有在保存invoice
(因此它的嵌套items
)之后,一切都会解决。但我想在每个新项目被保存之前为其设置一个默认值。
如何才能做到这一点?
谢谢你的帮助。