我有一个非常简单的问题。但是到目前为止还没有找到解决方案。因此,这是我发送到服务器的JSON字符串:{ "name" : "abc", "groundtruth" : { "type" : "Point", "coordinates" : [ 2.4, 6 ] }}使用新的许可方法,我得到了:params.require(:measurement).permit(:name, :groundtruth)这不会引发任何错误,但是创建的数据库条目包含null而不是groundtruth值。如果我刚设置:params.require(:measurement).permit!一切都按预期方式保存,但这当然会破坏强大参数提供的安全性。我找到了解决方案,如何允许使用数组,但没有一个使用嵌套对象的示例。这一定是有可能的,因为它应该是一个非常普通的用例。那么它是怎样工作的?
3 回答
缥缈止盈
TA贡献2041条经验 获得超4个赞
我发现此建议对我的情况有用:
def product_params
params.require(:product).permit(:name).tap do |whitelisted|
whitelisted[:data] = params[:product][:data]
end
end
检查Xavier在github上的评论的链接。
这种方法将整个params [:measurement] [:groundtruth]对象列入白名单。
使用原始问题属性:
def product_params
params.require(:measurement).permit(:name, :groundtruth).tap do |whitelisted|
whitelisted[:groundtruth] = params[:measurement][:groundtruth]
end
end
- 3 回答
- 0 关注
- 581 浏览
添加回答
举报
0/150
提交
取消