Ruby on rails 4 Rails4:如何附加非白名单字段(强参数)
我不知道该怎么说。可能已经有人问过这个问题了 我有一个订单表,它有product_details列。但是,当用户提交订单时,它只获取用户的名称和地址。我想在保存数据时手动添加产品详细信息 我的订单管理员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
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
我的意思是,用户不提交数据产品的详细信息。我从数据库中手动获取这些信息,并在他们提交姓名和地址后添加这些信息。