我一直在使用一种标准技术来创建/更新关联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
参数?
我查看了控制台()中生成的代码rails c
,但它们与开发日志相似。
谢谢