gpt4 book ai didi

ruby-on-rails - 解包 Rails POST 参数散列并映射到带有强参数的模型属性

转载 作者:数据小太阳 更新时间:2023-10-29 08:03:17 26 4
gpt4 key购买 nike

我正在构建一个 rails4 api,我在其中发布属性的嵌套哈希。然而,该模型实际上并没有嵌套属性或关联。尝试通过将一些属性组合成一个组来制作更清晰的后参数散列,但让 api 处理解包和强参数验证。

## Example POST params
params[:item][:group] = {
a: true,
b: false
}

但是模型实际上并没有group列,属性ab是直接在模型上的属性。

在没有 group 包装器的情况下处理这个问题很简单

params.require(:item).permit(:a, :b)

但我想让它通过 strong_parametersgroup 包装器一起提交。如果没有如上所述的 POST 参数,我该如何实现?

最佳答案

您可以在调用操作之前去除所有中间级别:

class YourController < ApplicationController
before_action :flatten_item_params

private

def flatten_item_params
params[:item] = params.require(:item).each_with_object({}) do |(key, value), result|
result.merge!(value)
end
end

def item_params
params[:item].permit(:a, :b)
end
end

关于ruby-on-rails - 解包 Rails POST 参数散列并映射到带有强参数的模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34246843/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com