Comment définir les “sélectionnés” dans select_tag/options_from_collection_for_select
J'ai été la recherche stackoverflow pour près de 2 heures de train de traverser des questions similaires, mais les réponses ne semblent tout simplement pas de travail.
J'ai le code suivant:
<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name") %>
J'aimerais afficher l'option que j'ai choisi précédemment sélectionné au lieu d'aller à la première balise par défaut.
Dans les autres questions qu'ils ont suggéré d'ajouter les éléments suivants (aucune de ces travaux).
<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name", "1") %>
Ou:
<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name", @models.first.id) %>
ps. Je suis à l'aide de Rails 3.1.RC4
Est-ce dans un formulaire ou un stand alone?
C'est un stand-alone sélectionnez
C'est un stand-alone sélectionnez
OriginalL'auteur imjp | 2011-07-16
Vous devez vous connecter pour publier un commentaire.
En supposant que, en plus de votre
@models
qui contient la liste complète, vous avez également@model
qui contient l'enregistrement en cours, vous pouvez effectuer les opérations suivantes:Fondamentalement, le quatrième paramètre de
options_from_collection_for_select(...)
doit contenir l'id de l'élément que vous souhaitez être sélectionné. Votre deuxième exemple de code forces de l'id sélectionnées pour être de 1 à chaque fois, et la troisième échantillon que vous avez posté, fait toujours le premier élément dans@models
sélectionné, quel que soit le modèle actuellement sélectionné.@model.friendly_id
au lieu de@model.id
:<%= select_tag "name_dropdown", options_from_collection_for_select(@models, "friendly_id", "name", @model.friendly_id) %>
OriginalL'auteur Dylan Markow