2009-12-19 3 views
1

J'ai une base de données Pays rempli de contries (évidentes). maintenant je voudrais les afficher dans le select_tag dans ma vue (comme une liste déroulante).comment mettre des éléments du modèle dans select_tag

J'ai essayé puttin dans options_for_select sth comme @ show_me_the_countries_mama.each do | f | ('[' + f.printable_name + ']' + ','). ceci énumérerait chacun des pays entre [] entre crochets et avec des espaces en vue normale. mais cela ne fonctionne pas dans options_for_select pour faire la liste déroulante.

j'ai:

'get' ne%> Pays:

Comment puis-je résoudre ce problème? Je dois d'une manière ou d'une autre mettre un éventail de pays dans options_for_select et maintenant je demande comment dois-je faire cela. shoud j'écris méthode séparée dans le modèle pour obtenir le bon tableau de pays et puis en les insérant ici ou ..?

merci pour vos réponses

Répondre

4

Essayez d'utiliser la balise collection_select:

<%= collection_select :object, :country_id, Country.all, :id, :printable_name %> 

Où: id et: printable_name sont les méthodes transmises à chaque modèle Country.all pour obtenir la valeur et l'affichage parties d'une option de sélection, respectivement.

Vous pouvez également regarder formtastic pour très génération de formulaire facile.

+0

parfait! Merci encore! – user235195

0

Vous pouvez utiliser le plug-in country_select pour ne pas avoir à en conserver dans votre base de données. Si vous allez sur la route formtastic, vous aurez toujours besoin d'un plugin comme country_select.

Questions connexes