我有一个有很多任务的用户。这是一组预定义的任务。每个任务都有一个需要完成的任务要求列表才能完成任务。我已经建立了2个has_many through
关系。这是我的代码。
class User < ActiveRecord::Base
has_many :user_tasks
has_many :tasks, through: :user_tasks
end
class UserTask < ActiveRecord::Base
belongs_to :user
belongs_to :task
end
class Task < ActiveRecord::Base
has_many :user_tasks
has_many :users, through: :user_tasks
has_many :task_requirements
has_many :requirements, through: :task_requirements
end
class TaskRequirement < ActiveRecord::Base
belongs_to :task
belongs_to :requirement
end
class Requirement < ActiveRecord::Base
has_many :task_requirements
has_many :requirements, through: :tasks
end
这部分看起来相当简单,但现在我想捕获每个需求完成的日期以及每个User
是否完成的布尔值。我最初试图把它放在TaskRequirement
表中,但当然它已经为所有用户更新了,这不是我想要的行为。所以我有2个问题。
1.我在哪里放这些田地?
2.访问它们的最佳方式是什么?
我假设他们会进入连接表,但没有简单的方法来访问连接表中的信息。
再次感谢您的帮助。
答案 0 :(得分:0)
如果每个用户完成任务要求,而不管其他用户是否完成了任务,那么您需要一个UserRequirement表来存储关联的数据项 - 布尔值和完成日期。
但是,如果每个用户必须多次完成每个需求,对于与之关联的每个任务都需要一次,那么您需要在User和TaskRequirement,UserTask和Requirement,或User and Task之间进行连接。要求。