1

我正在使用 rails 5 和 Ruby 2.3
我有一个模型名称用户使用可以创建作业的设计创建,因此用于此的迁移是:

rails g model job user:references cader_id:integer

这些工作可以由其他具有 Cader 角色的用户完成。当 Cader 完成一项工作时,我将该用户的 user_id 存储在工作表中作为 cader_id 整数

正确的索引应该是在导轨中执行此操作的正确方法。所以如果我想搜索用户完成的所有工作,他们会快速搜索索引。

我可以搜索该用户创建的所有工作,例如

user.jobs

类似于搜索可以使用搜索的特定工作的用户

job.user

我怎么能像 Cader 一样搜索用户完成的所有工作

cader.completed_jobs or user.completed_job 

并搜索完成这项工作的特定 Cader

job.cader

预先感谢

现在要搜索完成一项特定工作的 Cader,我已经编写了类方法,例如

 def cader?
    cader = User.find(self.cader_id)
 end     
4

1 回答 1

1

您可以在用户模型中编写一个实例方法completed_jobs,并像这样获取该用户的已完成作业。

def completed_jobs
  Job.where(cader_id: id)
end

并且要搜索特定的更改,当您查询特定的作业实例时,您是cader作业的类方法。instance method

添加索引cader_id以改善搜索结果

于 2019-02-06T10:17:48.700 回答