看看下面的简单对象模型,例如:ActiveRecord:对象可以添加到一个has_many:通过一个批处理操作?
class Course
has_many :enrollments
has_many :students, :through => :enrollments, :after_add => :send_email
def send_email(student)
puts "Email Sent"
end
end
class Enrollment
belongs_to :course
belongs_to :student
end
class Student
has_many :enrollments
has_many :courses, :through => :enrollments
end
我想一个或更多的学生加入到课程后进行send_email
,但是after_add每个项目添加到收藏的学生之后被激发。
bill = Student.first
carl = Student.last
Course.first.students << [bill, carl]
将输出
Email Sent
Email Sent
我如何能赶上一个单一事件后的所有项目添加到集合?
是否可以在单个查询中为所有学生插入记录到enrollments
表中而不是每个学生?
是否Rails有任何内置的机制,或者是否需要编写自定义逻辑来捕获然后批量刷新到send_email
的调用?
感谢您的任何信息!