我使用Rails作为REST服务器和AngularJS前端之间的代理。
其余资源(POST / GET)存储为类对象(没有ActiveRecord,因为没有本地数据库)。
我对嵌套属性示例{profile: [{"nested_1": "a descr"} , {"nested_2": "other desc"}]}
如何告诉Rails控制器允许Angular发送的对象的嵌套属性?
控制器处理更新/创建操作时出现未许可参数错误
P.S。我不熟练使用Rails,所有对未经许可的params /嵌套属性错误的答案都与我不依赖的ActiveRecord有关。
感谢您的帮助。
答案 0 :(得分:0)
应略微重写您的个人资料参数以匹配强参数政策:
params = {profile: {"nested_1" => "a descr", "nested_2" => "other desc"} }
parameters = ActionController::Parameters.new(params)
parameters.require(:profile).permit(:nested_1, :nested_2)
# => {"nested_1"=>"a descr", "nested_2"=>"other desc"}
可以看到here,Parameters
类扩展了HashWithIndifferentAccess
,因此配置文件参数不能是Array
,而是Hash
。