4

我有以下型号:

计划中.rb

has_many :tickets

在ticket.rb中

belongs_to :plan
validates_presence_of :plan_id

在控制器中执行以下代码时

@plan.tickets.build( ... )
@plan.save

保存失败,错误消息为票证:计划不能为空。(计划有效。)

4

1 回答 1

3

当我调用build它时我的对象是新的并且未保存时,我已经发生了这种情况。

build分配plan_id, 如果@plan的 id 为 nil,那么您的票证plan_id将为 nil。因为build不验证或保存,所以直到以后才发现。

将关联对象添加到未保存对象的其他方法似乎记住它未保存并适当地设置 id。所以试试这个:

 @plan.tickets << Ticket.new(...)
 @plan.save
于 2009-04-21T01:20:42.760 回答