ti-enxame.com

Como usar o botão de rádio corretamente nos trilhos?

Estou tentando criar alguns botões de rádio e não sei como. Seguindo this question Tenho configurado funcionando quase correto, mas sou novo nisso e não tenho certeza porque não consigo entender completamente. Então, o que estou fazendo é colocar um rótulo para agrupar o booleano e então ter botões de rádio rotulados como Sim e Não. Se o usuário clicar no rótulo de Sim, ele deve selecionar o botão de opção "sim" (agora eles só podem clicar no botão em si). Este é o meu código da seguinte forma:

  <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>

O primeiro rótulo é para o grupo, ele rotula o grupo "Autolyse". Então eu quero um rótulo para "Sim", que, se selecionado, será definido como verdadeiro e, obviamente, o próximo é para Falso. Como faço para configurar isso corretamente?

33
GiH

veja label (object_name, método, 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

Se você quiser manter selecionada a opção escolhida pelo usuário, você deve validar o param, seria algo assim:

<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>

Se você quiser fazer isso a partir das propriedades do objeto, basta substituir a variável params pela propriedade do objeto:

<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