我有两个型号Order(id, user_id,...)
和OrderEvent(id, order_id, ...)
这些数据被存储在两个对象@order
和@order_event
。
现在,我想保存Order并在OrderEvent中更新order_id,然后将内容保存在数据库中。
在CakePHP中,如果我们以某种方式对内容进行结构化,则可以一次将所有这些内容保存在一起。有没有一种方法可以将内容保存在一个调用中,以便在发生任何验证错误时都不会创建两条记录,并且都会失败
命令
--- !ruby/object:Order
attributes:
id:
host_id: 1
user_id: 1
order_no: PH1504-F3D11353
type_of_order: events
order_date: !ruby/object:DateTime 2015-04-17 10:49:52.066168000 Z
sub_total: 7050.0
tax_rate:
rate_cost:
deliver_charges:
discount_code:
discount_rate:
discount_cost:
total_cost: 7050.0
order_dishes_count:
order_events_count:
status: 0
created_at:
updated_at:
OrderEvent
--- !ruby/object:OrderEvent
attributes:
id:
order_id:
event_id: 2
no_of_ppl: 3
event_date: 2015-01-22 00:00:00.000000000 Z
cost: 2350.0
total_cost: 7050.0
status: 0
created_at:
updated_at:
命令
class Order < ActiveRecord::Base
belongs_to :user
belongs_to :host
has_many :order_events
has_many :messages
end
OrderEvent
class OrderEvent < ActiveRecord::Base
belongs_to :event
belongs_to :order
end
如果您设置了适当的关联,则以下内容将为您工作:
@order = Order.create(...)
@order_event = @order.order_events.create(...) # pass all attrs except id & order_id
编辑:
如果我已经准备好对象并且想要保存,可以使用'.save'代替.create – Harsha MV
在这种情况下,您可以直接更新@order_event
为:
@order_event.update(:order => @order)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句