看看下面的簡單對象模型,例如: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
的調用?
感謝您的任何信息!