Rails,Angular,具有嵌套属性的REST API

时间:2014-11-12 10:40:15

标签: ruby-on-rails angularjs rest

我使用Rails作为REST服务器和AngularJS前端之间的代理。 其余资源(POST / GET)存储为类对象(没有ActiveRecord,因为没有本地数据库)。 我对嵌套属性示例{profile: [{"nested_1": "a descr"} , {"nested_2": "other desc"}]}

有疑问

如何告诉Rails控制器允许Angular发送的对象的嵌套属性?

控制器处理更新/创建操作时出现未许可参数错误

P.S。我不熟练使用Rails,所有对未经许可的params /嵌套属性错误的答案都与我不依赖的ActiveRecord有关。

感谢您的帮助。

1 个答案:

答案 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"}

可以看到hereParameters类扩展了HashWithIndifferentAccess,因此配置文件参数不能是Array,而是Hash