如何在Rails中创建新父级与现有子级的关系

时间:2014-06-06 17:58:57

标签: ruby-on-rails ruby-on-rails-3

我的问题是我有一个订单(子记录),但用户(父记录)还不存在。我想在用户表单中将订单作为嵌套属性发送。

查找订单:

@order = Order.where(:paypal_express_token => params[:token]).last

创建用户:

@user = User.new

尝试创建关系

if @order.user_id.blank?
  @order.user_id = @user.id
end

但似乎这是错误的。

在同时创建孩子和父母的时候,我可以这样做:

@user = User.new
@user.build_order

有什么想法吗?

更新

我正在尝试使用@MrYoshiji建议,但我在这个问题中发现了另一个问题:Why the code doesn't appear in the html?... in Rails

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

@order = Order.where(:paypal_express_token => params[:token]).last
@order.user ||= User.new # ||= will set user if @order.user returns nil OR false
# ...
@order.save # should save the user also