データベース内のハッシュに列の値を更新しようとしています。データベースの列はテキストです。私が持っているモデルでは値は、シリアル化後にActiveSupport :: HashWithIndifferentAccessでDB内で更新されます
、コントローラで
serialize :order_info
私は更新アクション
def update
Order.update_order_details(update_params, params[:order_info])
head :no_content
end
を持っorder_infoは任意のハッシュであると研究を行った後、ので、私は、強いのparamsをorder_infoための強力なパラメータは致しておりません任意のハッシュをサポートしていません
私が渡そうとしている値は以下の通りです
"order_info": {
"orders": [
{
"test": "AAAA"
}
],
"detail": "BBBB",
"type": "CCCC"
}
しかし、私はそれが
--- !ruby/object:ActionController::Parameters parameters: !ruby/hash:ActiveSupport::HashWithIndifferentAccess comments: - !ruby/hash:ActiveSupport::HashWithIndifferentAccess test: AAAA detail: BBBB type: CCCC permitted: false
シリアル化がactivesupportののインスタンスである:: HashWithIndifferentAccessので、私は、なぜその値にthatsの推測していますように、データベースに更新されます値を更新してみてください。余分なものを取り除き、ハッシュを更新するにはどうすればいいですか?
ありがとうございました。私も.to_unsafe_h.deep_symbolize_keysを試しましたが、あなたの答えははるかに優れています。あなたは明日私の日を救った:) – mike