我使用的是rails 5和Ruby 2.3
我有一个模型名用户使用可以创建作业的设备创建的,因此用于此目的的迁移是:
rails g model job user:references cader_id:integer
这些作业可以由角色为Cader的其他用户完成。当学员完成作业时,我将该用户的user_id存储在作业表中,作为整数的Cader_id
正确的方法应该是什么。因此,如果我想搜索用户完成的所有工作,他们会快速搜索索引。
我可以像一样搜索该用户创建的所有工作
user.jobs
类似于搜索可以使用搜索的特定作业的用户
job.user
如何,我以Cader的身份搜索用户完成的所有作业像
cader.completed_jobs or user.completed_job
并搜索像一样完成任务的特定学员
job.cader
提前感谢
现在为了搜索完成特定工作的Cader,我已经写了类似的类方法
def cader?
cader = User.find(self.cader_id)
end
您可以在用户模型中编写一个实例方法completed_jobs
,并像这样获取该用户完成的作业。
def completed_jobs
Job.where(cader_id: id)
end
为了搜索特定的cader
,在查询特定作业实例时,将类方法更改为作业instance method
。
在cader_id
上添加索引以改进搜索结果