我有一個非常簡單的問題。但是到目前為止還沒有找到解決方案。因此,這是我發送到服務器的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 關注
- 603 瀏覽
添加回答
舉報
0/150
提交
取消