我经常在应用程序的某些地方使用表单对象。但我现在需要的是一些更复杂的东西。
当我创建它们时,它总是一个具有简单字符串属性的ActiveModel对象。但我现在需要的是这个对象中有嵌套对象。
Ex:我有一个ClassroomForm对象,它具有简单的属性,如name和teacher_id。但是这个Classroom对象可以有许多学生对象,其中包含名称和状态等字段。
使用ActiveModel进行此操作的最佳方法是什么?解决方案是创建两个表单对象,ClassroomForm和StudentsForm,然后在ClassroomForm中声明一个attr_accessor:学生?但是,如何在表单中添加新学生(使用嵌套属性)?
答案 0 :(得分:1)
寻找嵌套属性
根据你的例子:
首先将accepts_nested_attributes_for :students_forms, allow_destroy: true
添加到ClassroomForm
模型,然后使用表单构建器呈现学生表单
不要忘记直接从课堂表格中添加builder.hidden_field :_destroy
来删除student_forms