2017-04-08 3 views
2

Ich suche nach einer Möglichkeit, alle Aufgaben, die zu einem Projekt gehören, wo das Projekt ein bestimmtes Team-Attribut hat, zu ziehen.Versuchen, alle Aufgaben zu finden, die zu einem Projekt gehören

  1. Projekt has_many Aufgaben
  2. Aufgaben has_one Projekt

Mein Projekt eine Tabellenspalte team genannt hat. Ich suche nach einer Möglichkeit, die Aufgaben in meinem Projekt-Controller auf meinem Projekt-Index anzuzeigen.

Antwort

2

In Ihre Modelle sollten Beziehungen wie unten sein:

class Project < ActiveRecord::Base 
    has_many :tasks 
end 

Task-Modell:

class Task < ActiveRecord::Base 
    belongs_to :project 
end 

Projekte Controller

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

In Projektansichten

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

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

Dies funktioniert nicht, weil '.where' eine Sammlung zurückgibt. Wahrscheinlich möchten Sie 'find_by' verwenden – Mark

+0

Ich möchte alle Aufgaben für viele Projekte zeigen. Gibt es eine Möglichkeit, dies mit der Where-Klausel zu tun? Um genauer zu sein, versuche ich alle Aufgaben für jedes Projekt anzuzeigen, das einen bestimmten Teamnamen hat. Das bedeutet, dass ich höchstwahrscheinlich viele Projekte mit vielen Aufgaben bekomme. –

+0

@JasonMarkBeaton überprüfen Sie bitte meine aktualisierte Antwort. –

1
# projects controller 

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

Angenommen, Sie haben eine Spalte in der Tabelle projectsteam genannt, sollte diese Arbeit. In Ihrer Ansicht index können Sie nun auf jede Aufgabe mit der Variablen @tasks zugreifen.

+0

Danke! Können Sie mir sagen, wie ich die Gesamtsummen für die Teamaufgaben anzeigen kann? Jede Aufgabe hat eine processMetric und eine outcomeMetric, die ich täglich versuche. –

Verwandte Themen