我一直在使用一种标准技术来创建/更新关联的has_many, through:
模型,方法是创建复选框并将HTML元素名称指定为id的集合。考虑一下:
<% Course.all.each do |course| %>
<label class="checkbox">
<%= check_box_tag 'student[course_ids][]', course.id, @student.course_ids.include?(course.id) %>
<%= course.name %>
</label>
为了支持这一点,Student
模型具有以下内容:
attr_accessible :course_ids, ...
has_many :student_courses, dependent: :destroy
has_many :courses, through: :student_courses
我对此没有任何问题,因为相关的模型StudentCourses
被创建或删除,所以效果很好。
我的问题是Rails在提交表单后如何进行创建/删除?我查看了开发日志,我看到了Delete或Insert语句,但没有看到Rails使用的“魔法”。更具体地说,Rails如何使用course_ids
param?
我查看了控制台(rails c
)中生成的代码,但它们与开发日志类似。
谢谢