2017-04-08 56 views
2

我正在寻找一种方法来获取属于某个项目的所有任务,其中该项目具有特定的团队属性。试图查找属于某个项目的所有任务

  1. 项目has_many任务
  2. 任务has_one项目

我的项目有一个名为team表列。 我正在寻找一种方法来调用我的项目控制器中的任务以显示在我的项目索引中。

回答

2

在你的模型的关系应该是象下面这样:

class Project < ActiveRecord::Base 
    has_many :tasks 
end 

任务模式:

class Task < ActiveRecord::Base 
    belongs_to :project 
end 

项目控制器

def index 
    @projects = Project.where(column_name: 'some_value') 
end 

在项目视图

<% @projects.includes(:tasks).each do |project|%> 
    <% project.tasks.each do |task| %> 
     <%= task.team %> 
    <% end %> 

    ... and attributes so on 
<% end %> 
+1

这将不起作用,因为'.where'返回一个集合。您可能想要使用'find_by' – Mark

+0

我想显示许多项目的所有任务。有没有办法用where子句做到这一点?更具体地说,我试图为任何具有特定团队名称的项目显示所有任务。这意味着我很可能会获得许多项目,每个项目都有很多任务。 –

+0

@JasonMarkBeaton请检查我的更新答案。 –

1
# projects controller 

def index 
    @tasks = Project.find_by(team: 'some_team').tasks 
end 

假设你已经在你的projects表中的列称为team,这应该工作。现在,在您的index视图中,您可以使用@tasks变量访问每个任务。

+0

谢谢马克!你能告诉我如何能够显示团队任务的总数吗?每个任务都有一个processMetric和outcomeMetric,我总是在白天尝试。 –

相关问题