Rails ActiveRecord有很多问题
我有一个用户有很多任务。这是一组预定义的任务。每个任务都有一个要完成的任务所需完成的需求列表。我已经建立了两个或多个关系。这是我的密码Rails ActiveRecord有很多问题,activerecord,ruby-on-rails-4,Activerecord,Ruby On Rails 4,我有一个用户有很多任务。这是一组预定义的任务。每个任务都有一个要完成的任务所需完成的需求列表。我已经建立了两个或多个关系。这是我的密码 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 en
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
这一部分看起来相当简单,但现在我想捕获每个需求完成的日期,以及每个用户是否完成的布尔值。我最初试图将它放在TaskRequirement表中,但随后它当然为所有用户更新了,这不是我想要的行为。所以我有两个问题。
1.我应该把这些字段放在哪里?
2.访问它们的最佳方式是什么
我假设它们将放在联接表中,但是没有简单的方法可以访问联接表中的信息
再次感谢您的帮助。如果每个用户都独立于其他用户是否已完成任务来完成任务需求,那么您需要一个UserRequirement表来存储相关数据项—布尔值和完成日期
但是,如果每个需求必须由每个用户多次完成,每个与之相关联的任务完成一次,那么您需要在用户和TaskRequirement、UserTask和requirement、user和task和requirement之间建立连接。在requirement下,has\u many:requirements,to::tasks应该是has\u many:tasks,通过::任务需求。别忘了你的反向联想。