假设我有三个模型(基本上)是这样的:
class User < ActiveRecord::Base
has_many :projects
has_many :deliverables
end
class Project < ActiveRecord::Base
belongs_to :user
has_many :deliverables
end
class Deliverable < ActiveRecord::Base
belongs_to :user
belongs_to :project
end
现在,假设我希望发生以下情况:当
project
从一个
user
到另一个,所有相关的
deliverables
会和它一起转移。比如说:
project = Project.find(some_criteria)
deliverables = project.deliverables
project.user_id = new_user_id
deliverables.each do |d|
d.user_id = new_user_id
end
有什么方法可以使我刚才描述的自动化吗?我当然可以把它变成一种方法
transfer_user
),但我更希望它在任何时候自动发生
user_id
设置为新值。