请帮忙。我有一个使用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的新手。
提前致谢
干杯
答案 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 %>