Ruby Rails select select affiche une valeur vide "prompt"?
J'ai une collection de sélectionner comme suit:
<%= f.collection_select :region_id, Region.find(:all), :id, :name, { :prompt => 'Select a State/Province' }, :style => "width: 200px;" %>
Parfois l'invite de l' :option d'invite s'affiche, mais parfois il ne le fait pas. Quelqu'un sait-il où je pourrais commencer à résoudre ce problème? J'ai peut-être regardé trop longtemps...
source d'informationauteur Tony
Vous devez vous connecter pour publier un commentaire.
:include_blank
de la valeur de votre option blanc semble faire l'affaire. Essayez ceci::prompt
apparaît dans la liste quand il n'y a pas de sélectionner une valeur.:include_blank
apparaît dans la liste toujours, même si vous avez chargé le sélectionner avec une valeur sélectionnée.si vous voulez que votre choisir de toujours avoir
"Select a State/Province"
comme la première option:si vous voulez que votre collection ont
"Select a State/Province"
comme la première option uniquement si une région n'est pas déjà sélectionnée:source: http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html
J'ai eu le même problème. À l'aide de "demander" semble créer un attribut de la balise select, le problème c'est qu'il ne attribut, que je sache. En Plus de sa clairement pas ce qui est décrit dans les Rails docs http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_from_collection_for_select.
À l'aide de include_blank me semble être une bonne solution pour moi.
Acclamations, Robin.
essayer cette
<%= f.collection_select :region_id, Region.all, :id, :name, {prompt: 'Select a State/Province'}, {class: "form-control"} %>
Au lieu de
essayer
EDIT: Oui, après vérification de l'API, je peux voir que j'avais confondu les deux, invite est la façon correcte d'après la documentation, se pourrait-il qu'il n'est parfois parce que votre objet a une valeur déjà et, par conséquent, la demande est là, mais ce n'est pas la valeur actuellement sélectionnée dans la liste déroulante???