Ruby on rails 在Rails控制台中,如何查找表中的以下记录
我有3种型号:Ruby on rails 在Rails控制台中,如何查找表中的以下记录,ruby-on-rails,Ruby On Rails,我有3种型号: 工作区(有许多项目) 项目(属于工作区,有许多任务) 任务(属于项目) 在Rails控制台中,我可以执行以下操作: w = Workspace.find(1) w.projects.all 这将返回属于Id为1的工作区的所有项目。如何找到属于Id=1的工作区的所有任务 我试过: w.projects.tasks.all 但这在您的工作区中不起作用,请使用以下关联: has_many :tasks, through: :projects 此外,我建议您根据帖子中提到的描述检
w = Workspace.find(1)
w.projects.all
这将返回属于Id为1的工作区的所有项目。如何找到属于Id=1的工作区的所有任务
我试过:
w.projects.tasks.all
但这在您的
工作区中不起作用,请使用以下关联:
has_many :tasks, through: :projects
此外,我建议您根据帖子中提到的描述检查,您需要找到任务属于特定项目,而该项目又属于特定工作区
w.projects.tasks.all
上面的行不会像w.projects返回ActiveRecord集合那样工作,为了使关联工作,您需要一个对象
假设您已经编写了@Abhilash提到的必要关联,下面提到的查询将实现您所需要的功能
#1st solution
project_tasks = w.includes(:projects => [:tasks]) #eager-loading both project and tasks
#2nd solution
project_tasks = w.projects.map {|project| project.tasks } # will return all tasks
希望它能清除您的查询 您可以通过关联使用has\u many:。裁判:@GokulM做得很好。谢谢