Rails:嵌套表单 - 将user_id从父级传递给子级

时间:2016-01-11 11:25:10

标签: ruby-on-rails

我尝试将user_id从父模型(订单)传递到子模型(销售)。因为这不起作用"正常"方式,如@sale.user_id = current_user.id(这实际上适用于具有Order的父模型@order.user_id = current_user.id。我在我的模型中尝试了这个解决方法:

class Sale < ActiveRecord::Base
  belongs_to :order
  before_create :user

  def user
    self.user_id = Order.where(:id => self.order_id).pluck(:user_id)
  end

end

user内我将订单 .id(父级)与 Sale .order_id(子级)作为{{1}进行比较}保存在Sale记录中。当我查找上一个销售记录时,order_id始终为user_id

nil

你有想法吗?

2 个答案:

答案 0 :(得分:1)

在您的模型中尝试此操作。

 def user
   self.user_id = self.order.user_id
 end

答案 1 :(得分:1)

  

params [:sale] .permit(:product,:product_group,:discount,:order_id :user_id ,:乘数)

首先,您应不允许 user_id&amp;你的控制器中有order_id

其次,您可以按照以下方式填写销售user_id

def user
  user_id = order.user_id
end