2010-10-24 4 views
0

Je reconnais que je peux utiliser une option options_de_collection_pour_select dans une zone de sélection pour afficher une liste d'options à l'intérieur. Si j'ajoute (first.id), il sélectionnera la première option comme présélection par défaut. Exemple:options_from_collection_for_select pour éviter les problèmes d'actualisation

options_from_collection_for_select(@hauses, 'id', 'timebuild', @hauses.first.id) 

Cependant, si dans le index.rhtml, je mets cette boîte de sélection avec la première option que la sélection par défaut, chaque fois que j'actualisez la page, il sera toujours sélectionner à nouveau la première option, et non le courant sélection. S'il vous plaît veuillez guider, comment puis-je modifier le paramètre ci-dessus, donc quand un utilisateur, exemple choisi l'option 2, puis actualiser la page, il ne change pas à l'option 1, mais toujours en option 2. Aussi seulement pour le premier temps de chargement de la page, il affichera l'option 1 (par défaut).

Merci

+0

Comment rafraîchir-vous la page? La sélection ne devrait pas changer lors de l'actualisation correcte ... – Lichtamberg

+0

cela change. à partir de la liste déroulante sélectionnez, si je mets ma souris à la 2ème sellection, et appuyez sur f5, il ira à la 1ère vente. – heike

Répondre

0

OK, si vous voulez la zone de sélection d'avoir une valeur par défaut. Cool. Mais vous ne devriez pas le définir dans les options_from_collection.

Vous devez définir dans l'objet que cet ID sera stocké dans.

La signature de la méthode est

options_from_collection_for_select(collection, value_method, text_method, selected = nil) 

Ainsi, sélectionné devrait être votre valeur sélectionnée. Si vous faites quelque chose comme

form_for @super_cool do |f| 
    ... 
    select_tag... 
    options_from_collection_for_select(@hauses, 'id', 'timebuild', @super_cool.hause_id) 

En outre, le collection_select est beaucoup plus facile ... dans mon exemple,

form_for @super_cool do |f| 
    ... 
    f.collection_select :hause_id, @hauses, :id, :timebuild 
Questions connexes