web-dev-qa-db-fra.com

rails erb form helper options_for_select: sélectionné

J'ai un formulaire d'édition dans erb.

<%= form_for @animal do |f| %>

Dans le code, j'ai un choix avec des options:

<%= f.select :gender, options_for_select([['Mare'], ['Stallion'], ['Gelding']], :selected => :gender) %>

Cependant, la sélection est ne montrant pas la valeur sélectionnée correcte. Que pourrais-je faire de mal? Je peux le faire fonctionner si je le code en dur, mais bien sûr, ce n'est pas une option viable.

27
Drew Harris

Dans votre code, votre appel options_for_select() définit la valeur sélectionnée sur "gender" et n'essaie pas d'utiliser la valeur de votre objet de formulaire.

Veuillez consulter la documentation de options_for_select() pour des exemples d'utilisation.

options_for_select(['Mare', 'Stallion', 'Gelding'], f.object.gender)
options_for_select(['Mare', 'Stallion', 'Gelding'], :selected => f.object.gender)

Alternativement, vous pouvez le faire , qui utilisera déjà la valeur gender() pour votre objet formulaire:

<%= f.select :gender, ['Mare', 'Stallion', 'Gelding'] %>
61
kristinalim

Au fait, si vous utilisez :include_blank => true, cela mettra votre sélection actuelle à blanc même si le formulaire "sait" ce qui est sélectionné.

5
Hans Hauge