Ruby on rails 为什么association.build不将父\u id分配给它的子级?
我有以下型号: 在plan.rb中Ruby on rails 为什么association.build不将父\u id分配给它的子级?,ruby-on-rails,ruby,activerecord,associations,Ruby On Rails,Ruby,Activerecord,Associations,我有以下型号: 在plan.rb中 has_many :tickets 在ticket.rb中 belongs_to :plan validates_presence_of :plan_id 在控制器中执行以下代码时 @plan.tickets.build( ... ) @plan.save 票证保存失败,错误消息为:计划不能为空。(计划有效。)当我在对象上调用build时,当我的对象是新的且未保存时,就会发生这种情况 build分配计划id,如果@plan的id为零,则您的票据的计划id
has_many :tickets
在ticket.rb中
belongs_to :plan
validates_presence_of :plan_id
在控制器中执行以下代码时
@plan.tickets.build( ... )
@plan.save
票证保存失败,错误消息为:计划不能为空。(计划有效。)当我在对象上调用
build
时,当我的对象是新的且未保存时,就会发生这种情况
build
分配计划id
,如果@plan
的id为零,则您的票据的计划id
将为零。因为build
不会验证或保存,所以您要等到以后才能发现
将关联对象添加到未保存对象的其他方法似乎会记住该对象未保存,并适当设置id。所以试试这个:
@plan.tickets << Ticket.new(...)
@plan.save
@plan.tickets那么,除了保存父项之外,不可能有这样的验证、构建父项、构建关系子项,并且同时没有错误消息?