我正在构建一个create
方法,其中传递给控制器的参数是在json中。我的所有string
字段都插入到数据库中,但我的Array
字段为null
。
这是我的模型(剥离简单)
Class Model
include Mongoid::Document
include Mongoid::Timestamps
field :name
field :list, type: Array
end
这是创建方法
def create
a = a.find(params[:some_id])
t = a.Model.create!(my_params)
render json: t.as_json
end
end
private
def my_params
params.permit(:name, :list)
end
我也在POST中使用以下标题
Content-Type: application/json
Accept: application/json
这是我的输入正文:
{
"name": "test_name",
"list":[{
"value1" : "test1",
"value2" : "test2
}]
}
以下是显示null
数组
{
"_id": {
"$oid": "56c36f5cd592ce0e70b4f7da"
},
"name": "test_name",
"list": null,
"created_at": "2016-02-16T18:50:04.472Z",
"updated_at": "2016-02-16T18:50:04.472Z"
}
我似乎无法弄清楚为什么这不起作用
答案 0 :(得分:0)
我找到了朋友给我的答案。 params.permit
来电需要将list
例如:params.permit(:name, :list [:value1])
除此之外,如果白名单不能是静态的另一种解决方法是使用
def my_params
params.permit!
params.permit(:name, :list)
end
这将允许所有。