2
我已经看到了使用accepts_nested_attributes_for的例子很多,但仅适用于JSON POST/PUT他们几个人,没有他们的帮助我:/accepts_nested_attributes_for蒙山JSON PUT(更新)
我的应用程序将被用于创建表单。
所以,一个表单有很多form_row,而form_row可以有很多选择(如果它是一个radio的选择)。 所以,我有我的表单模型是这样的:
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。
我在做什么错?
我已经试过了,但只有名称被更新。不添加form_rows:/ – Olivier 2013-03-04 08:59:27
Oups抱歉,它的工作原理,我做错了。不过,我仍然有问题。我form_row可以有很多选择,但这样的{ “形式” 一个JSON:{ “名”: “形式测试4”, “form_rows_attributes”: { “domtype”: “输入”, “标签” : “超级排新”, “选择”: { “名”: “选择1”, “值”: “VALUE1” } ] } ] } } 不工作: /我有一个错误: ActiveModel :: MassAssignmentSecurity :: FormsController中的错误#update 无法整体分配受保护的属性es:choices – Olivier 2013-03-04 11:44:53
@Tagazok你在'FormRow'模型里面有'attr_accessible:choices'吗?你的'FormRow'模型中还需要'accep_nested_attributes_for:choices'。 – patrickmcgraw 2013-03-04 17:51:16