2009-09-25 8 views
2

Dans mon application, j'ai un collection_select sur ma table des membres, la table des membres contient uniquement des ID. Il a un user_id, project_id, role_id, et ainsi de suite.remplacer id avec le nom dans collection_select

Je veux montrer le nom des membres dans la collection_select. Mais j'ai seulement le user_id dans la table des membres, comment puis-je montrer les noms de la table d'utilisateur en tant qu'options?

<%= collection_select(nil, :member_id, members, :id, :user_id, 
       {:prompt => "Select a member"}) %> 

Maintenant, la boîte de sélection affiche les options 1,2,3,4, et ainsi de suite. il doit être nom1, nom2, à partir de la table utilisateur.

Est-ce que quelqu'un a de l'expérience avec cela?

+0

pensez-vous d'avoir un élément de sélection sera l'utilisateur amical quand avoir un grand nombre de membres? – khelll

+0

la collection select est basée sur une boîte de sélection "select project", mais merci pour le feedback – arcooverbeek

Répondre

3

d'abord tout ce que vous devez ajouter une nouvelle méthode à votre modèle de membres:

class Member < ActiveRecord::Base 
    belongs_to :user 
    def member_name 
    user.name 
    end 
end 

changer ensuite l'argument text_method-member_name:

<%= collection_select(:member, :member_id, members, :id, :member_name, 
       {:prompt => "Select a member"}) %> 
Questions connexes