如何在Ruby中检查默认单选按钮?

时间:2014-10-22 00:23:27

标签: ruby-on-rails ruby radio-button

请帮忙。我有一个使用Ruby构建的单选按钮,如下所示

      <p>Which design do you prefer to use? </p>
      <% [ 'Design 1', 'Design 2', 'Design 3', 'Design 4', 'Design 5' ].each do |theme| %>
          <br><%= radio_button_tag 'theme', theme, @theme == theme %>
          <%= label_tag "theme_#{theme}", theme.humanize %>
      <% end %>

我想确保默认情况下始终检查第一个元素(也称为Design 1),除非用户选择其他一些设计。我不能因为上帝的爱而弄清楚如何在Ruby中检查默认值。我是Ruby的新手。

提前致谢

干杯

1 个答案:

答案 0 :(得分:3)

您可以执行此操作:传入checked以检查项目

<%= radio_button_tag 'theme', theme, checked: @theme.FIELD_NAME == 'design' %>

详情请见http://apidock.com/rails/ActionView/Helpers/FormTagHelper/radio_button_tag

回答你的评论:

  啊,我不明白? :(所以<%= radio_button_tag 'theme', theme %> 成为&lt;%= radio_button_tag'主题',主题,检查:   @ theme.FIELD_NAME =='design'%&gt; ??但这会引发错误?我只是   想要默认选择第一个单选按钮元素 -

FIELD_NAME是模型中列的名称。要检查第一项,您可以尝试这样做:只需添加checked: true关键字

即可
<%= radio_button_tag 'theme', theme, @theme == theme, checked: true %>

好,所以你需要做以下事情:

<% [ 'Design 1', 'Design 2', 'Design 3', 'Design 4', 'Design 5' ].each_with_index do |theme, i| %>
  <% if i == 0 %>
      <br><%= radio_button_tag 'theme', theme, @theme == theme, checked: true %>
  <% else %>
      <br><%= radio_button_tag 'theme', theme, @theme == theme %>
  <% end %>
  <%= label_tag "theme_#{theme}", theme.humanize %>
<% end %>