当使用accepts_nested_attributes_for时,我不想传递“child_attributes”,而是想传递“child”。我很确定如果我在控制器中添加了很多逻辑来创建记录和子项,我可以做到这一点。但是,为了保持我的控制器清洁和逻辑应有的位置,在这种情况下的模型,我想知道如何在执行POST或PUT时切换rails 3以使用此语法。
{
"name": "test",
"child_attributes": [
{
"id": 1,
"name": "test_child_update"
},
{
"name": "test_child_create"
}
}
相反
{
"name": "test",
"child": [
{
"id": 1,
"name": "test_child_update"
},
{
"name": "test_child_create"
}
}
答案 0 :(得分:4)
显然,这是不可能的。
答案 1 :(得分:2)
_attributes
后缀不会为JSON请求和响应添加任何值,但要在模型层中删除它,您必须使用补丁ActiveRecord。每个人都讨厌修补ActiveRecord关系。
如何在控制器层中执行此操作?
@comment = Comment.new(attributify(:comment))
# snip
# ApplicationController
def attributify()
# Now I'll go and write this!
end
编辑:完成。控制器mixin位于:https://gist.github.com/johncant/6056036