我见过许多使用accepts_nested_attributes_for的例子,但是json POST / PUT中只有少数例子没有帮助我:/
我的应用程序将用于创建表单。
因此,一个表单有很多form_rows,一个form_row可以有很多选择(如果它是一个选择的无线电)。 所以,我有这样的表单模型:
class Form < ActiveRecord::Base
attr_accessible :name
has_many :form_rows
accepts_nested_attributes_for :form_rows
end
我的控制器看起来像这样:
def update
@form = Form.find(params[:id])
@form.update_attributes!(params[:form])
end
这是我想发送的json
{
"name": "form test 4",
"form_rows_attributes": [
{
"domtype": "Input",
"label": "Super row new"
}
]
}
在我的场景中,表单创建只接受一个名称,之后用户添加了form_rows。
当我这样做时,名称已正确更新,但form_rows根本没有创建。我的控制台中没有错误,只是表单的UPDATE。
我做错了什么?
答案 0 :(得分:6)
您的JSON需要更多级别的嵌套,因此params[:form]
调用实际上会找到参数:
{
"form": {
"name": "form test 4",
"form_rows_attributes": [
{
"domtype": "Input",
"label": "Super row new"
}
]
}
}