web-dev-qa-db-fra.com

Comment utiliser le bouton radio correctement dans les rails?

J'essaie de créer des boutons radio et je ne sais pas comment faire. Suite à cette question, je l’ai configuré de manière à fonctionner correctement, mais je suis novice dans ce domaine et je ne sais pas pourquoi je ne peux pas le comprendre complètement. Donc, ce que je fais est de mettre une étiquette pour grouper le booléen et ensuite avoir des boutons radio qui sont étiquetés Oui et Non. Si l'utilisateur clique sur l'étiquette de Oui, il doit sélectionner le bouton radio Oui (pour l'instant, ils ne peuvent cliquer que sur le bouton lui-même). Ceci est mon code comme suit:

  <div class="field">
    <%= f.label :autolyse %><br />
    <%= f.label :autolyse, "Yes", :value => "Yes"  %>
    <%= f.radio_button :autolyse, true%>
    <%= f.label :autolyse, "No", :value => "No" %>
    <%= f.radio_button :autolyse, false, :checked => true %>
  </div>

La première étiquette est pour le groupe, elle étiquette le groupe "Autolyse". Ensuite, je veux une étiquette pour "Oui", qui, si elle est sélectionnée, définira comme valeur vraie, puis la suivante est évidemment pour faux. Comment puis-je obtenir cette configuration correctement?

33
GiH

voir label (nom_objet, méthode, content_or_options = nil, options = nil, & block)

  <div class="field">
    <%= f.label :autolyse %><br />
    <%= f.label :autolyse, "Yes", :value => "true"  %>
    <%= f.radio_button :autolyse, true %>
    <%= f.label :autolyse, "No", :value => "false" %>
    <%= f.radio_button :autolyse, false, :checked => true %>
  </div>
68
shweta

Si vous voulez garder sélectionnée l'option choisie par l'utilisateur, vous devez valider le paramètre, ce qui ressemblerait à ceci:

<div class="field">
  <%= f.label :autolyse %><br />
  <%= f.label :autolyse, "Yes", :value => "true"  %>
  <%= f.radio_button :autolyse, true, !!params[:autolyse] %>
  <%= f.label :autolyse, "No", :value => "false" %>
  <%= f.radio_button :autolyse, false, !!params[:autolyse] %>
</div>

Si vous voulez le faire à partir des propriétés de l'objet, il vous suffit de remplacer la variable params pour la propriété de l'objet:

<div class="field">
  <%= f.label :autolyse %><br />
  <%= f.label :autolyse, "Yes", :value => "true"  %>
  <%= f.radio_button :autolyse, true, [email protected] %>
  <%= f.label :autolyse, "No", :value => "false" %>
  <%= f.radio_button :autolyse, false, [email protected] %>
</div>
0
Carlos Castillo