【发布时间】:2016-01-17 01:40:53
【问题描述】:
我有一组对象,我通过ajax 发送到controller。
我的ajax请求是这样的:
$.ajax({
data: {
product: [{'name': 'ahmad', 'price': 'tench', 'quantity': '12'}, {'name': 'gulshan', 'price': 'tench', 'quantity': '12'}]
},
url: '',
type: "POST",
dataType: "json",
success: function ( data ) {
console.log(data);
// this.setState({ comments: data });
}.bind(this)
});
控制器:
def create
@product = Product.new(product_params)
if @product.save
render json: @product
else
render json: @product.errors, status: :unprocessable_entity
end
end
private
def product_params
params.fetch(:product).permit!
end
但是如果我使用create 方法,那么我也会遇到同样的错误。
我附上了 rails 日志中参数的屏幕截图。
我不明白为什么会出现此错误?
请帮忙。
【问题讨论】:
-
你能把控制器的动作代码贴出来吗?
-
我已经添加了控制器的代码。请检查
-
您正在向控制器发送多个产品,但控制器不知道如何处理。您可以遍历 product_params 并一个一个地保存一个产品(您可以将其放入一个单独的类中)。
-
顺便说一句,我们可以使用
require而不是fetch -
好的,但是
create方法可以采用哈希数组。对 ? stackoverflow.com/questions/26724347/… 但在这里我也遇到了同样的错误。
标签: ruby-on-rails ruby ajax activerecord hash