2016-04-27 7 views
0

Ich habe ein einfaches Drop-Down-Menü collection_select in einem Formular:Rails angezeigt werden zusätzliche Informationen in Drop-Down-Menü

<%= f.label :team %> 
<%= f.collection_select(:team_id, Team.all, :id, :name) %> 

Im Moment das Drop-Down-Menü zeigt die Teamnamen, wie es sollte. Ich möchte, dass das Dropdown-Menü auch das team: kind (auch in der Team-Datenbank) anzeigt. (z. B. "Team name - Team kind")

Irgendwelche Vorschläge? Der api Guide war nicht so hilfreich, da das Team: Art ist technisch nicht essenzielle Informationen in Form.

Antwort

1

Sie eine Methode, wie

def both_teams 
    "#{self.name} - #{self.type}" 
end 

So etwas schaffen kann ...

collection_select(:team_id, Team.all, :id, :both_teams) 
+0

Das gibt mir den folgenden Fehler undefined lokale Variable oder Methode 'team 'für # . Es scheint sich auf das Team in team.name und team.type zu beziehen. Ist es nicht möglich, Folgendes anzuzeigen: name und: kind wie ein Array in den collection_select-Argumenten? – ncarroll

+0

Ich glaube, die obige Methode sollte 'self.name' und' self.type' sein, da die Methode innerhalb der 'Team' Klasse ist. –

+0

arbeitete wie ein Charme, danke! – ncarroll

2

dieses nach Modell Versuchen

def display_fields 
    "#{self.name} - #{self.type}" 
end 

dann auf Ihrer Ansicht

collection_select(:team_id, Team.all, :id, :display_fields) 
Verwandte Themen