我有一个有很多任务的用户。这是一组预定义的任务。每个任务都有一个要求列表,这些要求需要完成才能完成任务。我已经建立了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. 访问它们的最佳方式是什么?
我假设他们将进入连接表,但没有简单的方法可以访问连接表中的信息。
再次感谢所有帮助。