Je suis désolé d'avoir posté une autre question à propos de ce même morceau de code mais je suis si novice aux rails que c'est douloureux. Ma question est, je voudrais obtenir un troisième bouton radio pour être sélectionné quand la valeur par défaut dans le DB est présente. En d'autres termes, j'ai trois boutons "vrai", "faux" et "soit". Si rien n'est encore sélectionné ou si l'utilisateur a sélectionné le bouton "soit", j'aimerais que cette sélection soit affichée. Actuellement, si l'utilisateur choisit "true" ou "false", alors cette sélection est reflétée correctement et comme prévu. C'est juste que la troisième option sélectionnée n'est pas reflétée lorsque le formulaire est sauvegardé ou remonté. Voici mon code:avoir des problèmes avec: checked radio_button - rails
<div class="new-partner-form">
<%= form_for [:admin, matching_profile.partner, matching_profile], :html => {:id => "edit_profile", :multipart => true} do |f| %>
<div class="rounded-block semi-wide clear">
<h4>Military Service</h4>
<%= f.radio_button :served_in_us_army, false %>
<%= label :served_in_us_army, 'NO', {:style => 'display:inline'} %>
<%= f.radio_button :served_in_us_army, true %>
<%= label :served_in_us_army, 'YES', {:style => 'display:inline'} %>
<%= f.radio_button :served_in_us_army, " ", { :checked => (:served_in_us_army.nil? or :served_in_us_army.blank? ? true : false) } %>
<%= label :served_in_us_army, 'Either', {:style => 'display:inline'} %>
<%= f.error_message_on :served_in_us_army %>
</div>
EDIT: Je dois noter que aussi essayé l'option: « cochée » sans les accolades. Toujours pas de chance.
Je ne sais pas si cela est la meilleure solution, mais voici comment je l'ai résolu la question (i besoin la valeur du champ et non le nom de la colonne):
<div class="rounded-block semi-wide clear">
<h4>Military Service</h4>
<%= f.radio_button :served_in_us_army, false %>
<%= label :served_in_us_army, 'NO', {:style => 'display:inline'} %>
<%= f.radio_button :served_in_us_army, true %>
<%= label :served_in_us_army, 'YES', {:style => 'display:inline'} %>
<%= f.radio_button :served_in_us_army, " ", :checked => matching_profile.served_in_us_army.nil? %>
<%= label :served_in_us_army, "Either", {:style => 'display:inline'} %>
<%= f.error_message_on :served_in_us_army %>
</div>
Je crains d'être encore un peu brumeux ici. Dites que j'ajoute des méthodes au modèle qui retourne la valeur de: served_in_us_army (probablement je peux faire quelque chose comme 'attr_accessor: served_in_us_army'). N'aurais-je pas encore besoin d'une vérification dans la vue pour voir quelle est la valeur et déterminer si le bouton est coché en fonction de la valeur? – Ramy