繁体   English   中英

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

[英]Rails: Nested Forms - passing the user_id from parent to child

我试图将user_id从父模型( Order )传递到子模型( Sale )。 因为这不@sale.user_id = current_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我将Order .id(父级)与Sale .order_id(子级)进行比较,因为order_id保存在Sale记录中。 当我查找最后的Sale记录时, user_id始终为nil

class SalesController < ApplicationController
 load_and_authorize_resource
 before_action :authenticate_user!

 def create
   @order = Order.find(params[:order_id])
   @sale = @order.sales.create(params[:sale].permit(:product, :product_group, :discount, :order_id, :user_id, :multiplier))
   redirect_to order_path(@order)
 end

你有想法吗?

在您的模型中尝试一下。

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

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

首先,您不应在控制器中允许 user_idorder_id

其次,您可以按如下方式填充销售的user_id

def user
  user_id = order.user_id
end

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM