2016-04-24 10 views
-1

Ich habe solche Frage. zum Beispiel habe ich drei Modelle: User, Projekt, Anschluss:Wie Zugriff auf Attribut in vielen zu vielen Assoziation

class User < ActiveRecord::Base 
    has_many :connections 
    has_many :tasks, :through => :connections 
end 
class Project < ActiveRecord::Base 
    has-many :connections 
    has_many :users, :through => :connections 
end 
class Connection < ActiveRecord::Base 
    belongs_to :user 
    belongs_to :project 
    enum status: [:manager, :developer] 
end 

ist die Frage: Wie kann ich das „Status“ Attribut in der Modellverbindung zugreifen? zum Beispiel nehme ich ein Projekt:

@project = Projects.last 

dann bekomme ich Benutzer aus diesem Projekt, aber ich interessiere mich auch für eine Rolle, die sie in einem Projekt spielen:

@project.users.each do |u| 
    u.name 
    u.connection.role #Here I get an error `undefined method `connection'` 
end 

Natürlich u.role würde nicht funktionieren, da es für einen Benutzer keine solche Attribut- "Rolle" gibt. Ich möchte das Attribut "Rolle" zeigen und bearbeiten Irgendwelche Gedanken?

Antwort

0

ich dieses Problem auf diese Weise gelöst haben: user.connections.find_by_project_id (@ project.id) .role%>

Verwandte Themen