0
周圍的Googling列,發現了很多的潛力解決方案的地獄正確處理它,結束了;下面,工作Rails5/STRONG參數/ JSON與「動態」鍵
def item_params
load_params = params.require(:item).permit(
:title,
:content
)
load_params[:meta] = params[:item][:meta] if params[:item][:meta]
load_params.permit!
end
使用這樣的有效載荷(在控制檯看):仍
{
"item" => {
"title"=>"abc",
"meta"=>{
"fontcolor"=>"xyz",
}
}
}
日誌顯示,該領域是不允許的:
Unpermitted parameter: :meta
不會阻塞,即使發出警告,它也會傳遞這些參數並正確保存。
沒有在相關列上使用序列化或任何序列化器,因爲它在沒有它的情況下按預期工作(與大量討論json列和序列化的帖子交談,現在看起來不像現在這樣,因爲它似乎只有一次)
這種解決方案並不在我的身邊,同樣的警告工作,但確實元參數是阻止:
def item_params
meta_keys = params[:item][:meta].keys
params.require(:item).permit(:title, meta: meta_keys)
end
由於這是顯得有點亂,我覺得挺不舒服需要大約用什麼最後的決定以及如何使用它;所以thx很多如果有任何自信的建議
你也可以分享'您發佈樣本data'? – skam
@skam增加了一個相關的例子 – Ben