Rails如何通过other_model_ids更新关联模型?

时间:2013-04-05 14:54:27

标签: ruby-on-rails-3 activerecord

我一直在使用一种标准技术来创建/更新关联的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)中生成的代码,但它们与开发日志类似。

谢谢

0 个答案:

没有答案