我的应用程序中有一个模型(我们可以称之为代理),它与模型任务(表示可以分配给一个或多个代理的任务的模型)具有多对多关系,一个任务可以被代理接受:
class Agent < ActiveRecord::Base
has_many :assignments
has_many :missions, :through => :assignments
end
class Assignment < ActiveRecord::Base
belongs_to :agent
belongs_to :mission
attr_accessible :accepted
end
class Mission < ActiveRecord::Base
has_many :assignments
has_many :agents, :through => :assignments
end
现在,我希望能够创建一次分配给所有代理的任务,并满足以下要求:
- “全球”任务分配给所有特工,但可以单独接受
- “全局”任务也适用于在创建全局任务后创建的代理。
- 我不想在每次创建新代理时创建新的分配模型(以便为他分配所有全局任务),并且我不想在每次创建新的全局任务时为所有现有代理创建分配。
- 分配给特定(或多个)代理的现有任务可以轻松转换为全球任务。
- 给定一个代理,我想在一次调用中获得他的所有分配(全局和特定),如果可能的话,作为一个关系而不是一个数组
在不为全局和非全局任务创建单独的表的情况下实现此功能的良好设计(数据库和模型)是什么?
谢谢!
爱丽儿