2010-08-17 3 views
0

Je suis nouveau sur les rails et je suppose que vous pouvez répondre à cette question facilement.Rails: Comment utiliser select dans formtastic avec activeRecord

Ce que je suis arrivé à ce jour est

= f.input :task, :as => :select, :collection => @tasks, :include_blank => true 

où la collecte des tâches est définie par

Task.find(:all) 

au sein du contrôleur.

Cela fonctionne en fait, me montre une liste déroulante de toutes les tâches à sélectionner et les connecte. Le problème ici est que le menu déroulant me montre des valeurs comme

#<Task:0x123456789d1234> 

Où puis-je définir la valeur qui est affichée?

Répondre

4

Je crois que vous pouvez utiliser le :label_method pour résoudre votre problème ...

f.input :task, :as => :select, :collection => @tasks, 
    :include_blank => true, :label_method => :title 

:title est ce que vous voulez montrer.

This peut aider un peu plus.

+0

je vous remercie Mouch, le lien que vous avez publié fonctionnait très bien. Juste dû implémenter une fonction "to_label" dans la classe du modèle – Infinite

0

Vous pouvez définir une méthode to_s dans le modèle:

class Task < ActiveRecord::Base 

    def to_s 
    title # the attribute to display for the label 
    end 

end 
Questions connexes