Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 4 Rails4:如何附加非白名单字段(强参数)_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 4 Rails4:如何附加非白名单字段(强参数)

Ruby on rails 4 Rails4:如何附加非白名单字段(强参数),ruby-on-rails-4,Ruby On Rails 4,我不知道该怎么说。可能已经有人问过这个问题了 我有一个订单表,它有product_details列。但是,当用户提交订单时,它只获取用户的名称和地址。我想在保存数据时手动添加产品详细信息 我的订单管理员 def create @neworder = Order.new(order_params) if @neworder.save redirect_to root_url, notice: "" else render

我不知道该怎么说。可能已经有人问过这个问题了

我有一个订单表,它有product_details列。但是,当用户提交订单时,它只获取用户的名称和地址。我想在保存数据时手动添加产品详细信息

我的订单管理员

    def create
      @neworder = Order.new(order_params)
      if @neworder.save
        redirect_to root_url, notice: ""
      else
        render "new"
      end
    end

   private
    def order_params
      params.require(:order).permit(:name,:address)
    end
如果我列出了“产品详细信息”字段,那么我猜它是否会对批量分配开放?
参数require:order.permit:name、:address、:product_detail

如果您的产品详细信息是通过表单提交的,则您需要将其添加到许可白名单中,如下所示:

def order_params
  params.require(:order).permit(:name,:address, :product_details)
end
但是,我认为手动附加意味着在控制器中设置该属性。如果是这种情况,那么您不应该将其添加到许可列表中,因为它将允许该字段的大量分配-这可能是您不想要的

您需要更改创建操作,如下所示:

def create
  @neworder = Order.new(order_params)
  @neworder.product_details = "test"
  if @neworder.save
    redirect_to root_url, notice: ""
  else
    render "new"
  end
end

我的意思是,用户不提交数据产品的详细信息。我从数据库中手动获取这些信息,并在他们提交姓名和地址后添加这些信息。