使用has_many属性创建表单对象

时间:2018-03-22 12:24:14

标签: ruby-on-rails activemodel

我经常在应用程序的某些地方使用表单对象。但我现在需要的是一些更复杂的东西。

当我创建它们时,它总是一个具有简单字符串属性的ActiveModel对象。但我现在需要的是这个对象中有嵌套对象。

Ex:我有一个ClassroomForm对象,它具有简单的属性,如name和teacher_id。但是这个Classroom对象可以有许多学生对象,其中包含名称和状态等字段。

使用ActiveModel进行此操作的最佳方法是什么?解决方案是创建两个表单对象,ClassroomForm和StudentsForm,然后在ClassroomForm中声明一个attr_accessor:学生?但是,如何在表单中添加新学生(使用嵌套属性)?

1 个答案:

答案 0 :(得分:1)

寻找嵌套属性

根据你的例子: 首先将accepts_nested_attributes_for :students_forms, allow_destroy: true添加到ClassroomForm模型,然后使用表单构建器呈现学生表单

不要忘记直接从课堂表格中添加builder.hidden_field :_destroy来删除student_forms