Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 在Rails控制台中,如何查找表中的以下记录_Ruby On Rails - Fatal编程技术网

Ruby on rails 在Rails控制台中,如何查找表中的以下记录

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 此外,我建议您根据帖子中提到的描述检

我有3种型号:

  • 工作区(有许多项目)
  • 项目(属于工作区,有许多任务)
  • 任务(属于项目)
  • 在Rails控制台中,我可以执行以下操作:

    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做得很好。谢谢