基本上我有4个型号, 用户 - >项目 - >资产 - > TODOOS
我要做的是让它在用户页面上我可以查看所有需要完成的任务(所有todoos),然后在项目页面上我只能查看与该项目相关的任务在资产页面上,我希望能够查看仅与该资产相关联的所有任务。我该怎么做?目前,我的ToDoos专栏是:
标识 名称 用户身份 时间
以下是我的模特
#models/user
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
has_many :projects
has_many :assets, through: :projects
has_many :notes, through: :assets
has_many :todoos
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
项目
#models/project
class Project < ActiveRecord::Base
belongs_to :user
has_many :assets, dependent: :destroy
accepts_nested_attributes_for :assets
self.inheritance_column = nil
end
资产
class Asset < ActiveRecord::Base
belongs_to :project
self.inheritance_column = nil
end
Todoos
class Todoo < ActiveRecord::Base
belongs_to :user
end
Essentially this is what i want to be able to call on each page
User - current_user.todoos
Project - current_user.projects.todoos (or just project.todoos)
Asset - asset.todoos
**更新** 对于我的要求有些困惑。基本上每个待办事项都可以与资产,项目或用户相关联。但是,如果todo是在资产级别创建的,那么该todo将在项目和用户级别都可见,与在项目级别创建的todo相同,它也将在用户级别可见。从本质上讲,它首先与之相关的模型,在这个层次结构中所有其他模型都可以看到它
用户
|
项目
|
资产