我有我试图发布的数据,看起来像{ foo: [[:bar, 1], [:baz, 0]] }
.
我如何允许使用强参数?我能得到的最接近的是
params.permit(foo: [[]])
返回{"foo"=>[]}
我有我试图发布的数据,看起来像{ foo: [[:bar, 1], [:baz, 0]] }
.
我如何允许使用强参数?我能得到的最接近的是
params.permit(foo: [[]])
返回{"foo"=>[]}
基本上:
def permitted_params
result = params.require(:model).permit(:attributes).to_h # No array of arrays or hashes
result[:model][:array_of_arrays] = params[:model][:array_of_arrays]
result
end
更进一步,假设你有一个Model#json
并且你想存储model.json[:array_of_arrays] = [[]]
:
def permitted_params
result = params.require(:model).permit(:attributes).to_h # No array of arrays or hashes
result[:json] ||= {}
result[:json].merge!(array_of_arrays: params[:model][:json][:array_of_arrays])
result
end
确保在调用之前已允许所有不受信任的参数to_h
,并注意之后合并的内容。